K8s部署MySQL一主多从-非真正高可用
非真正高可用:一主多从,主节点宕机后,会自动调度至其他节点部署、启动Master,数据不会丢失,从节点会重新连接同步主节点并继续同步数据。
1.思路
1.Master、Slave使用的镜像
- mysql:8.0
2.每个容器节点创建一个对应的ConfigMap
- 不能扩展副本,server_id配置会还原默认,所以是一主多从模式
- 需要扩展节点则新建一个Pod,缩容则删除,数据持久化不会丢
- master节点宕机或被删除会自动调度至其他节点,并启动继续提供服务
- slave节点宕机也同理,宕机启动后会自动同步master节点数据
3.创建Master_Pod
- 创建master容器
4.单独给master容器创建Service外部访问服务,主要为了自定义端口
- slave节点根据自身需求创建Service
5.创建Slave_Pod
- 从构建镜像时就要指定好master的ip+端口,所以先规划好master的service端口,避免冲突
- ip可以是k8s集群内的所有节点ip(包括虚拟vip集群地址),端口则自定义一个不冲突的即可,如30306
6.进入Master_Pod添加测试数据
- 创建库、表
- 添加测试数据
7.进入Slave_Pod查看数据是否同步
- 查看数据是否与主库一致