华为云UCS-UCS双集群可靠性提升建议:容器级容错实施建议
容器级容错实施建议
容器级容错旨在通过配置健康检查和自动重启机制,确保容器应用的高可用性和可靠性。应用部署需要遵守以下规范:
项目 |
描述 |
说明 |
---|---|---|
应用无状态化 |
应用必须做无状态和幂等处理。 |
服务的无状态化是部署的多个服务模块(进程),使其完全对等。也就是部署多个Pod实例,请求到任一实例的处理结果是一样的。这些Pod实例不存储业务的上下文信息,比如session、登录、业务上下文相关的信息。只会根据每次请求携带的数据进行相应的业务处理。 幂等指的是使用相同的参数多次调用相同的API,对后端产生的影响是一致的。 |
应用副本数 |
每个应用负载实例数满足业务容量规划和可用性要求。
|
配合多集群方案,满足生产中应用高可用性要求。为集群级别和可用区(AZ)级别故障域隔离创造条件。 |
应用健康检查 |
每个应用必须配置:
配置合理的检查间隔和超时:
|
容器出现故障或无法正常工作,系统可以自动重启该容器,从而提高应用的可用性和可靠性。 |
弹性伸缩 |
业务支持自动扩缩容的能力即配置指标弹性HPA,并且要求:
|
业务按需使用资源,最大程度地减少资源浪费。在业务流量突增以及集群级故障时,应用能够自动扩容,保障业务不受损。 |
优雅停机 |
应用必须支持优雅停机。 |
优雅停机是在对应用进程发送停止指令之后,能保证正在执行的业务操作不受影响。应用接收到停止指令之后的步骤应该是,停止接收访问请求,等待已经接收到的请求处理完成,并能成功返回,这时才真正停止应用。 |
ELB健康检查 |
弹性负载均衡ELB流量分发正常工作的后端。 必须:应用提供健康检查接口,并在ELB上配置健康检查。 |
在个别实例异常、节点异常或者整个AZ、整个集群故障时,能快速地隔离故障实例,保证业务访问成功率。 |
容器镜像 |
容器镜像体积最大应不超过1G。容器镜像标签使用具体的版本号。 必须:容器镜像标签禁止使用latest。 |
体积小的镜像有利于分发、快速启动;镜像使用具体的版本号才能做版本控制。 |
资源配额 |
资源配额应为资源申请量的两倍数值。 |
预防应用升级、应用扩容场景时,因资源配额不足导致失败的情况。 |