一、
二、單機安裝一主一從
先創建對應pv
https://github.com/helm/charts/blob/master/stable/mariadb/templates/master-statefulset.yaml
mysql-ha-pv00.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: mariadb-master labels: app: mariadb spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /opt/mariadb-master
mysql-ha-pv01.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: mariadb-slave labels: app: mariadb spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /opt/mariadb-slave
kubectl create -f mysql-ha-pv00.yaml
kubectl create -f mysql-ha-pv01.yaml
三、安裝mysql
#修改密碼和修改主庫的pvc,默認都有pvc
helm install --name mariadb-ha --set rootUser.password="123456",replication.password="rep123456" stable/mariadb
#啟動后查看pod容器日志,提示沒權限創建目錄或初始化失敗,需要修改宿主目錄的權限為1001,因為容器默認以1001的用戶啟動
chown 1001:root /opt/mariadb-master
chown 1001:root /opt/mariadb-slave
kubectl get all查看是否成功
四、安裝成功后,測試
查看mysql密碼
kubectl get secret --namespace default mariadb-ha -o jsonpath="{.data.mariadb-root-password}" | base64 --decode
#啟動客戶端測試 kubectl run mariadb-ha-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mariadb:10.1.38 --namespace default --command -- bash #連接mysql server mysql -h mariadb-ha.default.svc.cluster.local -uroot -pdu123456
#創建表
create table test(
id int
);
五、擴容一台從庫
5.1 先創建pv
mysql-ha-pv02.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: mariadb-slave02 labels: app: mariadb spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /opt/mariadb-slave02
kubectl create -f mysql-ha-pv02.yaml
5.2 創建values
mysql-ha-values-upgrade.yaml
slave: replicas: 2 rootUser: password: 123456 replication: password: rep123456
5.3授權目錄
chown 1001:root /opt/mariadb-slave02
5.4更新
helm upgrade -f mysql-ha-values-upgrade.yaml mariadb-ha stable/mariadb