MySQL 集群
- 用自然语言描述想要的 MySQL 状态


XtraBackup: 业界主流开源 MySQL 备份和恢复工具. 利用该工具将主节点数据备份到指定目录
- 配置从节点
复制备份数据到从节点数据目录 /var/lib/mysql, 然后执行:

master_log_file: 备份数据
master_log_pos: 偏移
- 启动从节点

- 添加更多从节点
注意新添加的从节点的备份数据来自已经存在的从节点.
三座大山:

- 第一座大山
使用 ConfigMap:

创建两个 Service, 供 StatefulSet 以及用户使用:

Headless 记录示例:
- 格式:
. - mysql-0.mysql
MySQL 分为读写两种操作, 其中读操作可在 MySQL 任意节点上进行, 所以使用 VIP (第二个 Service), 而写操作只能在 master 上, 所以需要区分 MySQL 节点, 进而使用 Headless 来区分不同 Pod (第一个 Service).
用户可能需要分别使用读写操作.
- 第二座大山

配置 master 与 slave 所使用的 conf:
定义 InitContainer:


注意如何区分配置文件.
ConfigMap 卷定义:

配置文件复制后, 后面启动的 MySQL 也会挂载 conf 卷, 所以就能读取该配置了.
在从节点的 Pod 启动前, 从主节点或其他从节点里复制数据:
第二个 InitContainer:


注意: 挂载的配置目录和数据存储目录.
- 第三座大山
启动命令不同.


MySQL 容器本身的定义:


创建 PV:


创建 StatefulSet:

