1、
使用的 Helm repo如下
最开始没添加这个,下载的 stable/mysql ,不是很合适,后面加了这个源
helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
helm repo update
helm search mysqlha
新建一个文件夹mysql
helm fetch incubator/mysqlha
解压
cd mysqlha
2、
依据具体情况,调整values.yaml 中的值
我调整的项有
2.1
因为 gcr.io/google-samples/xtrabackup:1.0 没有pull 下来
看网上教程改为 pull 这个 twoeo/gcr.io-google-samples-xtrabackup:latest.
2.2
增加了这两个项
设置root用户密码
设置同步数据的密码
2.3
增加了我本地集群已有的 storageClass
size: 10Gi 可根据需要进行调整,我没有调整
3、在这个路径下进行部署
helm install mysql-ha . -f values.yaml
kubectl describe po mysql-ha-mysqlha-0
会报下面这个错,不管它,等待10多分钟可以自行创建好。
创建成功后
kubectl get all -n *** 进行查看
4、部署NodePort Service 提供对外访问
apiVersion: v1
kind: Service
metadata:
name: mysql-ha-wirteandread-service
labels:
app: mysql-ha-mysqlha
spec:
ports:
- name: mysql-ha-master
protocol: "TCP"
port: 3306
targetPort: 3306
nodePort: 30336 #此为外部连接k8s mysql-ha 服务的端口
selector:
statefulset.kubernetes.io/pod-name: mysql-ha-mysqlha-0
type: NodePort
kubectl apply -f mysql-ha-wirteandread-service.yaml (部署读写服务)
apiVersion: v1
kind: Service
metadata:
name: mysql-ha-readonly-service
labels:
app: mysql-ha-mysqlha
spec:
ports:
- name: mysql-ha-master
protocol: "TCP"
port: 3306
targetPort: 3306
nodePort: 30337 #此为外部连接k8s mysql-ha 服务的端口
selector:
statefulset.kubernetes.io/pod-name: mysql-ha-mysqlha-1
type: NodePort
kubectl apply -f mysql-ha-readonly-service.yaml(部署只读服务)
部署成功后
任意一个master ip+30336 连接读写服务 账号 root/values.yaml中定义的mysqlRootPassword密码
任意一个master ip+30337 连接只读服务 账号 root/values.yaml中定义的用户mysqlReplicationUser,密码mysqlReplicationPassword
5、其他配置项设置
加了这两句,增加了时区设置,否则少8个小时。增加了最大连接数的设置。
然后重新 helm uninstall / helm install