直接重启节点可能会导致集群出现异常。本文结合阿里云历史案例经验,说明了在对容器服务进行主动运维等场景下,需要重启节点时的操作最佳实践。

检查业务高可用配置

在重启容器服务节点前,建议先检查或修正如下业务配置,以避免节点重启触发单点异常,进而导致业务可用性受损。

  • 配置数据持久化策略

    建议为日志、业务配置等重要数据配置的外部卷进行数据持久化,以避免容器重建后,原有容器被删除引发数据丢失。

    关于容器服务数据卷的使用,参见 数据卷管理

  • 配置重启策略

    建议为相应业务服务配置 restart: always 自重启策略,以便节点重启后,相应容器能自动拉起。

  • 配置高可用策略

    建议结合产品架构,为相应业务配置 可用区调度(availability:az 属性)指定节点调度(affinity、constraint 属性)指定多节点调度(constraint 属性) 等亲和性、互斥性策略,以避免由于相应节点重启引发单点异常。比如,对于数据库业务,建议主备或多实例部署,然后结合前述特性,确保不同实例落在不同节点上,并且相关节点不会同时重启。

操作最佳实践

建议首先参阅前述说明,检查业务高可用性配置。然后 在每个节点上(切忌同时对多个节点进行操作),依次按如下步骤操作:

  1. 快照备份

    建议先对节点所有关联磁盘创建最新快照进行备份,以避免由于长时间未重启服务器,导致节点关机后启动过程中出现异常导致业务可用性受损。

  2. 验证业务容器配置有效性

    对于 swarm 集群,重启节点上的相应业务容器,确保容器能正常被重新拉起。

  3. 验证 Docker Engine 运行有效性

    尝试重启 Docker daemon ,确保 Docker enginge 能正常重新启动。

  4. 执行相关运维操作

    执行计划内的相关运维操作,比如业务代码更新、系统补丁安装、系统配置调整等。

  5. 重启节点

    在控制台或系统内部,正常重启节点。

  6. 重启后状态检查

    重启完节点后,到 容器服务管理控制台,检查节点健康状态,检查业务容器运行状态。