跳到主要内容

高可用集群

介绍维护高可用集群

高可用VIP的主动切换

高可用集群通过Keepalived来维护主从节点的切换,平时VIP在主节点,由主节点提供服务。在主节点宕机情况下,会自动切换到备节点,由备节点提供服务。

在平时运维工作中,存在需要主动切换主从节点的情况,例如要对主节点执行关机维护任务。

可以通过修改调低主节点的keepalived的优先级并重启keepalived实例的方式主动实现主从切换。

控制服务的VIP切换的keepavlied配置文件位于 /etc/kubernetes/manifests/keepalived.yaml

数据库服务的VIP切换的keepalived配置文件位于 /etc/keepalived/keepalived.conf

EIP网关的VIP切换的keepalvied配置文件位于 /etc/keepalived/eipgw.conf

高可用节点下线维护步骤

  1. 如果有VIP,将VIP主动切换到备节点
  2. 如果有虚拟机,迁移虚拟机到其他宿主机
  3. 将容器从该节点驱逐
kubectl cordon <node>
  1. 将kubelet,docker等服务设置为不自动启动
systemctl disable kubelet docker keepalived maraidb
  1. 停止容器
docker stop
  1. 停止所有服务
systemctl stop kubelet docker keepalived maraidb
  1. 维护节点

高可用节点恢复上线步骤

  1. 如果有数据库,先启动数据库
systemctl start mariadb
  1. 检查数据库主从同步状态
show slave status\G

如果有问题,则需优先解决数据库主从同步问题。

  1. 启动docker
systemctl start docker
  1. 启动kubelet
systemctl start kubelet
  1. 如果修改了keepavlied的优先级,恢复keepalived的优先级。启动keepalived
systemctl start keepalived
  1. 恢复Kubenetes调度
kubectl uncordon <node>
  1. 恢复以上服务的开机自动启动
systemctl enable kubelet docker keepalived maraidb