容器服务节点重启操作最佳实践
2017-10-30 14:28
387 查看
直接重启节点可能会导致集群出现异常。比如,对于 Swarm Mode 集群内的 Manager 节点,如果 Manager 健康节点数小于 2,则可能会导致集群无法自愈,最终导致集群不可用。本文结合阿里云历史案例经验,说明了在对容器服务进行主动运维等场景下,需要重启节点时的操作最佳实践。
在重启容器服务节点前,建议先检查或修正如下业务配置,以避免节点重启触发单点异常,进而导致业务可用性受损:
1. 配置数据持久化策略
建议为日志、业务配置等重要数据配置外部卷进行数据持久化,以避免容器重建后,原有容器被删除引发数据丢失。 关于容器服务数据卷的使用,可以参阅 产品文档。
2. 配置重启策略
建议为相应业务服务配置
3. 配置高可用策略
建议结合产品架构,为相应业务配置 可用区调度(availability:az
属性)、指定节点调度(affinity、constraint
属性) 和 指定多节点调度(constraint
属性) 等亲和性、互斥性策略,以避免由于相应节点重启引发单点异常。比如,对于数据库业务,建议主备或多实例部署,然后结合前述特性,确保不同实例落在不同节点上,并且相关节点不会同时重启。
建议首先参阅前述说明,检查业务高可用性配置。然后 在每个节点上(切忌同时对多个节点进行操作),依次按如下步骤操作:
1. 快照备份:
建议先对节点所有关联磁盘创建最新快照进行备份,以避免由于长时间未重启服务器,导致节点关机后启动过程中出现异常导致业务可用性受损。
2. 验证业务容器配置有效性(Swarm Mode 集群忽略):
对于非 Swarm Mode 集群,重启节点上的相应业务容器,确保容器能正常被重新拉起。
说明:
Swarm Mode 集群的最小控制操作单元是*服务*。所以,不能直接在 Swarm Mode 集群节点上通过 docker start/stop 等操作直接处理业务容器,否则会引发相关报错。正确的做法,是在*
容器服务管理控制台 *通过重新 *调整应用的
REPLICAS *的方式来对业务做自动调整。
3. 修改节点角色(Swarm Mode 集群)
如果相应节点是 Swarm Mode 集群内的 Manager 节点,则先将其 设置为
Worker 节点。
4. 验证 Docker Engine 运行有效性
尝试重启 docker daemon ,确保 docker enginger 能正常重新启动。
5. 执行相关运维操作
执行计划内的相关运维操作,比如业务代码更新、系统补丁安装、系统配置调整等。
6. 重启节点
在控制台或系统内部,正常重启节点。
7. 重启后状态检查
重启完节点后,到* 容器服务管理控制台 *,检查节点健康状态,检查业务容器运行状态。
8. 回调节点角色(Swarm Mode 集群)
如果相应节点是 Swarm Mode 集群内的 Manager 节点,则先将其重新 设置为
Manager 节点。
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
检查业务高可用配置
在重启容器服务节点前,建议先检查或修正如下业务配置,以避免节点重启触发单点异常,进而导致业务可用性受损:1. 配置数据持久化策略
建议为日志、业务配置等重要数据配置外部卷进行数据持久化,以避免容器重建后,原有容器被删除引发数据丢失。 关于容器服务数据卷的使用,可以参阅 产品文档。
2. 配置重启策略
建议为相应业务服务配置
restart: always自重启策略,以便节点重启后,相应容器能自动拉起。
3. 配置高可用策略
建议结合产品架构,为相应业务配置 可用区调度(availability:az
属性)、指定节点调度(affinity、constraint
属性) 和 指定多节点调度(constraint
属性) 等亲和性、互斥性策略,以避免由于相应节点重启引发单点异常。比如,对于数据库业务,建议主备或多实例部署,然后结合前述特性,确保不同实例落在不同节点上,并且相关节点不会同时重启。
操作最佳实践
建议首先参阅前述说明,检查业务高可用性配置。然后 在每个节点上(切忌同时对多个节点进行操作),依次按如下步骤操作:1. 快照备份:
建议先对节点所有关联磁盘创建最新快照进行备份,以避免由于长时间未重启服务器,导致节点关机后启动过程中出现异常导致业务可用性受损。
2. 验证业务容器配置有效性(Swarm Mode 集群忽略):
对于非 Swarm Mode 集群,重启节点上的相应业务容器,确保容器能正常被重新拉起。
说明:
Swarm Mode 集群的最小控制操作单元是*服务*。所以,不能直接在 Swarm Mode 集群节点上通过 docker start/stop 等操作直接处理业务容器,否则会引发相关报错。正确的做法,是在*
容器服务管理控制台 *通过重新 *调整应用的
REPLICAS *的方式来对业务做自动调整。
3. 修改节点角色(Swarm Mode 集群)
如果相应节点是 Swarm Mode 集群内的 Manager 节点,则先将其 设置为
Worker 节点。
4. 验证 Docker Engine 运行有效性
尝试重启 docker daemon ,确保 docker enginger 能正常重新启动。
5. 执行相关运维操作
执行计划内的相关运维操作,比如业务代码更新、系统补丁安装、系统配置调整等。
6. 重启节点
在控制台或系统内部,正常重启节点。
7. 重启后状态检查
重启完节点后,到* 容器服务管理控制台 *,检查节点健康状态,检查业务容器运行状态。
8. 回调节点角色(Swarm Mode 集群)
如果相应节点是 Swarm Mode 集群内的 Manager 节点,则先将其重新 设置为
Manager 节点。
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
相关文章推荐
- 对大量子节点DOM操作的最佳实践方式
- 【最佳实践系列】基于序列化技术的XML数据源操作模式
- 网易云基于Kubernetes+Docker的容器服务研发实践 - PaaS云
- Scala深入浅出进阶经典 第65讲:Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用源码解析
- Git最佳实践-本地仓库基本操作
- jQuery最佳实践操作与技巧
- 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker
- Web Service中Axis与DotNet互操作最佳实践:传递java.util.Map对象给C#(译)
- Web 服务最佳实践
- Spring RESTful服务接收和返回JSON最佳实践
- oracle11gr2_rac_删除节点最佳实践
- 微服务架构的两大解耦利器与最佳实践
- 浅谈容器监控和网易云计算基础服务实践
- 分布式服务框架之服务化最佳实践
- 微服务架构的两大解耦利器与最佳实践
- SOA最佳实践之构建数据服务层
- 网易云基于Kubernetes+Docker的容器服务研发实践 - PaaS云
- docker服务重启后自动重启容器
- 云计算之openstack(N版)keystone镜像服务最佳实践
- 服务的最佳实践——后台执行的定时任务