網(wǎng)件路由器設(shè)置seo北京公司
目錄
1、部署openebs(Elastic Block Store)
1.下載鏡像(針對k8s1.19)
2.加載鏡像(所有節(jié)點(diǎn)包括master)
3.下載yaml文件并部署
?4.設(shè)置默認(rèn)storageclass
2、編寫相關(guān)yaml文件
1.編寫secret
2.編寫statefulset文件
3.編寫service文件
?3、修改數(shù)據(jù)庫配置
1.遠(yuǎn)程連接問題
2.測試連接
3.問題
1、部署openebs(Elastic Block Store)
1.下載鏡像(針對k8s1.19)
鏈接:https://pan.baidu.com/s/1bKtBKwDkULWfxw_ulKqR3A?pwd=8888?
提取碼:8888?
2.加載鏡像(所有節(jié)點(diǎn)包括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-passwordnamespace: 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: mysqlname: mysql
spec:replicas: 3selector:matchLabels:app: mysqlserviceName: mysqltemplate:metadata:labels:app: mysqlspec:containers:- image: mysql:latestname: mysqlports:- containerPort: 3306env:- name: MYSQL_ROOT_PASSWORDvalueFrom:secretKeyRef: #使用secret方式name: mysql-passwordkey: passwordvolumeMounts:- name: mysql-datamountPath: /var/lib/mysqlvolumeClaimTemplates:- metadata:name: mysql-dataspec:accessModes: [ "ReadWriteOnce" ]storageClassName: openebs-hostpathresources: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: mysqlports:- protocol: TCPport: 3306targetPort: 3306nodePort: 30007type: NodePort
[root@k8s01 ~]# k apply -f service_mysql.yaml
?3、修改數(shù)據(jù)庫配置
1.遠(yuǎn)程連接問題
????????MySQL 8.0 引入了一些更加嚴(yán)格的安全策略,其中包括不允許創(chuàng)建一個新的
'root'@'%'
用戶。這是出于安全考慮的限制,因?yàn)樵试S從任何 IP 地址使用'root'
用戶連接到數(shù)據(jù)庫是不安全的。????????在 MySQL 8.0 中創(chuàng)建一個具有管理權(quán)限的用戶,可以創(chuàng)建一個具有
GRANT OPTION
權(quán)限的普通用戶,然后使用該用戶進(jì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 #登錄進(jìn)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 副本的情況下,每個副本將擁有自己獨(dú)立的數(shù)據(jù)卷(Persistent Volume),這些數(shù)據(jù)卷通常由獨(dú)立的 Persistent Volume Claim (PVC) 綁定。
????????每個 StatefulSet 副本都會啟動一個獨(dú)立的 MySQL 實(shí)例,這些實(shí)例的數(shù)據(jù)在各自的數(shù)據(jù)卷上進(jìn)行存儲,因此默認(rèn)情況下,它們的數(shù)據(jù)是相互隔離的,不會共享數(shù)據(jù)。
????????如果想要在這些 MySQL 實(shí)例之間共享數(shù)據(jù),您需要使用 MySQL 數(shù)據(jù)庫復(fù)制或者 MySQL 數(shù)據(jù)庫集群技術(shù)