直接重启节点可能会导致集群出现异常。比如,对于 swarm mode 集群内的 Manager 节点,如果 Manager 健康节点数小于 2,则可能会导致集群无法自愈,最终导致集群不可用。本文结合阿里云历史案例经验,说明了在对容器服务进行主动运维等场景下,需要重启节点时的操作最佳实践。
检查业务高可用配置
在重启容器服务节点前,建议先检查或修正如下业务配置,以避免节点重启触发单点异常,进而导致业务可用性受损。
操作最佳实践
建议首先参阅前述说明,检查业务高可用性配置。然后 [backcolor=transparent]在每个节点上(切忌同时对多个节点进行操作),依次按如下步骤操作:
- [backcolor=transparent]快照备份
建议先对节点所有关联磁盘创建最新快照进行备份,以避免由于长时间未重启服务器,导致节点关机后启动过程中出现异常导致业务可用性受损。 - [backcolor=transparent]验证业务容器配置有效性(swarm mode 集群忽略)
对于非 swarm mode 集群,重启节点上的相应业务容器,确保容器能正常被重新拉起。
[backcolor=transparent]注意:Swarm mode 集群的最小控制操作单元是服务。所以,不能直接在 swarm mode 集群节点上通过 docker start/stop 等操作直接处理业务容器,否则会引发相关报错。正确的做法是在
容器服务管理控制台 通过重新
调整应用的 REPLICAS 的方式来对业务做自动调整。
- [backcolor=transparent]修改节点角色(适用于 swarm mode 集群)
如果相应节点是 swarm mode 集群内的 Manager 节点,则先将其 设置为 Worker 节点。 - [backcolor=transparent]验证 Docker Engine 运行有效性
尝试重启 Docker daemon ,确保 Docker enginge 能正常重新启动。 - [backcolor=transparent]执行相关运维操作
执行计划内的相关运维操作,比如业务代码更新、系统补丁安装、系统配置调整等。 - [backcolor=transparent]重启节点
在控制台或系统内部,正常重启节点。 - [backcolor=transparent]重启后状态检查
重启完节点后,到 容器服务管理控制台,检查节点健康状态,检查业务容器运行状态。 - [backcolor=transparent]回调节点角色(适用于 swarm mode 集群)
如果相应节点是 swarm mode 集群内的 Manager 节点,则需要将其重新 设置为 Manager 节点。