一。主要参考官网任务:
但有一个问题是,无法下载image: gcr.io/google-samples/xtrabackup:1.0
也可以使用 lank8s.cn,他们的对应关系 k8s.gcr.io –> lank8s.cn,gcr.io –> gcr.lank8s.cn
docker pull gcr.lank8s.cn/google-samples/xtrabackup:1.0
二。创建config map、secret
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql
namespace: mysql
labels:
app: mysql
data:
master.cnf: |
[mysqld]
log-bin=mysqllog
skip-name-resolve
slave.cnf: |
[mysqld]
super-read-only
skip-name-resolve
log-bin=mysql-bin
replicate-ignore-db=mysql
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
namespace: mysql
labels:
app: mysql
type: Opaque
data:
password: MTIzNDU2 # echo -n "123456" | base64
三。创建pv
使用local-storage本地存储类
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
预先在每个节点上创建目录/mnt/statefulset/mysql
创建pv,节点亲和配置为每个节点的名称,pod生成后pv将绑定到每个节点
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /mnt/statefulset/mys