目錄
1、部署openebs(Elastic Block Store)
1.下載鏡像(針對k8s1.19)
2.加載鏡像(所有節(jié)點包括master)
3.下載yaml文件并部署
?4.設(shè)置默認(rèn)storageclass
2、編寫相關(guān)yaml文件
1.編寫secret
2.編寫statefulset文件
3.編寫service文件
?3、修改數(shù)據(jù)庫配置
1.遠程連接問題
2.測試連接
3.問題
1、部署openebs(Elastic Block Store)
1.下載鏡像(針對k8s1.19)
鏈接:https://pan.baidu.com/s/1bKtBKwDkULWfxw_ulKqR3A?pwd=8888?
提取碼:8888?
2.加載鏡像(所有節(jié)點包括master)
[root@k8s01 ~]# for i in 192.168.248.{20..22}; do ssh root@${i} "docker load -i openebs.tar"; done
3.下載yaml文件并部署
鏈接:https://pan.baidu.com/s/11P2a4890xTWqbe3nFPGyKA?pwd=8888?
提取碼:8888?
[root@k8s01 ~]# k apply -f openebs-operator.yaml
[root@k8s01 ~]# k get pods -A | grep openebs
openebs openebs-localpv-provisioner-6994cf5dd9-d57xg 1/1 Running 1 2d13h
openebs openebs-ndm-2b2tl 1/1 Running 0 2d13h
openebs openebs-ndm-bxlw8 1/1 Running 0 2d13h
openebs openebs-ndm-cluster-exporter-84bb5fc764-dzpdz 1/1 Running 0 2d13h
openebs openebs-ndm-node-exporter-2f8dg 1/1 Running 0 2d13h
openebs openebs-ndm-node-exporter-wpzt2 1/1 Running 0 2d13h
openebs openebs-ndm-operator-5f8578c994-pt4pq 1/1 Running 0 2d13h
?4.設(shè)置默認(rèn)storageclass
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
#此格式只能用json
2、編寫相關(guān)yaml文件
1.編寫secret
[root@k8s01 ~]# echo -n "huafeirenmo" | base64
aHVhZmVpcmVubW8=
[root@k8s01 ~]# vim secret_mysql.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysql-password
namespace: default
data:
password: "aHVhZmVpcmVubW8="
[root@k8s01 ~]# k apply -f secret_mysql.yaml
2.編寫statefulset文件
[root@k8s01 ~]# vim statefulset_mysql_opaque_passwd.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: mysql
name: mysql
spec:
replicas: 3
selector:
matchLabels:
app: mysql
serviceName: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:latest
name: mysql
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef: #使用secret方式
name: mysql-password
key: password
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
volumeClaimTemplates:
- metadata:
name: mysql-data
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: openebs-hostpath
resources:
requests:
storage: 1Gi
[root@k8s01 ~]# k apply -f statefulset_mysql_opaque_passwd.yaml
3.編寫service文件
[root@k8s01 ~]# vim service_mysql.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
selector:
app: mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
nodePort: 30007
type: NodePort
[root@k8s01 ~]# k apply -f service_mysql.yaml
?3、修改數(shù)據(jù)庫配置
1.遠程連接問題
????????MySQL 8.0 引入了一些更加嚴(yán)格的安全策略,其中包括不允許創(chuàng)建一個新的
'root'@'%'
用戶。這是出于安全考慮的限制,因為允許從任何 IP 地址使用'root'
用戶連接到數(shù)據(jù)庫是不安全的。????????在 MySQL 8.0 中創(chuàng)建一個具有管理權(quán)限的用戶,可以創(chuàng)建一個具有
GRANT OPTION
權(quán)限的普通用戶,然后使用該用戶進行授權(quán)操作。以下是示例步驟:[root@k8s01 ~]# k get pods #獲取pod名稱 NAME READY STATUS RESTARTS AGE mysql-0 1/1 Running 0 5h4m mysql-1 1/1 Running 0 5h3m mysql-2 1/1 Running 0 5h3m [root@k8s01 ~]# k exec -it mysql-0 -- /bin/bash #登錄進pod root@mysql-0:/# mysql -uroot -phuafeirenmo
以 root 用戶登錄到 MySQL:
使用 root 用戶(或具有管理員權(quán)限的用戶)登錄到 MySQL 服務(wù)器:
mysql -u root -p
創(chuàng)建新的普通用戶:
創(chuàng)建一個新的普通用戶,例如
myadmin
,并設(shè)置密碼。替換<password>
為您想要設(shè)置的密碼:CREATE USER 'myadmin'@'%' IDENTIFIED BY '<password>';
授予用戶權(quán)限:
授予
myadmin
用戶所需的權(quán)限,包括GRANT OPTION
,以便該用戶能夠授權(quán)其他用戶。例如:GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'%' WITH GRANT OPTION;
上述語句將授予
myadmin
用戶對所有數(shù)據(jù)庫的所有權(quán)限,并允許他授權(quán)其他用戶。刷新權(quán)限:
刷新 MySQL 的權(quán)限以使更改生效:
FLUSH PRIVILEGES;
2.測試連接
[root@k8s01 ~]# mysql -h 192.168.248.20 -P 30007 -umyadmin -phuafeiremmo
3.問題
????????在部署一個具有多個 MySQL StatefulSet 副本的情況下,每個副本將擁有自己獨立的數(shù)據(jù)卷(Persistent Volume),這些數(shù)據(jù)卷通常由獨立的 Persistent Volume Claim (PVC) 綁定。
????????每個 StatefulSet 副本都會啟動一個獨立的 MySQL 實例,這些實例的數(shù)據(jù)在各自的數(shù)據(jù)卷上進行存儲,因此默認(rèn)情況下,它們的數(shù)據(jù)是相互隔離的,不會共享數(shù)據(jù)。文章來源:http://www.zghlxwxcb.cn/news/detail-666856.html
????????如果想要在這些 MySQL 實例之間共享數(shù)據(jù),您需要使用 MySQL 數(shù)據(jù)庫復(fù)制或者 MySQL 數(shù)據(jù)庫集群技術(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-666856.html
到了這里,關(guān)于k8s-statefulset部署myql-Nodeport方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!