kubernetes搭建mysql集群服务

  • 时间:
  • 浏览:0

参考链接:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/

在pod初始化时, pod会根据自身标识(master或slave)从configmap中应用指定配置. 被应用配置将覆盖my.cnf中的配置. 目的是使master向slave提供克隆qq日志服务,并设置slave拒绝非克隆qq写入.

创建database, 并以同样方式登录mysql-1或mysql-2, 发现其下过后 将新创建的database同步则为验证成功.

当init容器执行完成后, 常规容器结速英文启动并运行. mysql Pods由运行mysqld服务的mysql容器和充当SideCar的xtrabackup容器组成(挎斗模式解析请见http://www.mamicode.com/info-detail-2149700.html)。

这里使用了另另一个初始化容器.

第另另一个初始化容器init-mysql作用包括根据pod名称后缀生成server_id文件, 从configmap中获取指定配置. 这里默认StatefulSet控制的第另另一个pod即mysql-0为master, 其余为slave.

第五个clone-mysql使用开源工具xtrabackup, 用于当前slave曾经另另一个slave克隆qq数据, 当有新的作为slave的pod加入集群时, 你你你是什么pod会从上另另一个pod(序号小1)的非master的pod克隆qq数据, 过后 新pod加入时, 大伙没有假定master中的数据是不为空的, 没有进行一次克隆qq操作, 曾经在扩容一定会处里数据丢失,

而曾经另另一个pod克隆qq数据是过后 StatefulSet按顺序启动, 当前另另一个pod为ready时才启动后另另一个pod的机制而来.

进入mysql-0后连接mysql:

登录mysql-0, 执行