云容器实例 CCI
云容器实例 CCI
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- 如何调用API
- 快速入门
- API
-
Kubernetes API
- ConfigMap
- Pod
- StorageClass
- Service
- Deployment
- Ingress
- OpenAPIv2
- VolcanoJob
- Namespace
- ClusterRole
- Secret
- Endpoint
- ResourceQuota
- CronJob
-
API groups
- 查询APIVersions
- 查询所有v1版本的API
- 查询APIGroupList
- 查询APIGroup /apis/apps
- 查询所有apps/v1的API
- 查询APIGroup /apis/batch
- 查询APIGroup /apis/batch.volcano.sh
- 查询所有batch.volcano.sh/v1alpha1的API
- 查询所有batch/v1的API
- 查询所有batch/v1beta1的API
- 查询APIGroup /apis/crd.yangtse.cni
- 查询所有crd.yangtse.cni/v1的API
- 查询APIGroup /apis/extensions
- 查询所有extensions/v1beta1的API
- 查询APIGroup /apis/metrics.k8s.io
- 查询所有metrics.k8s.io/v1beta1的API
- 查询APIGroup /apis/networking.cci.io
- 查询所有networking.cci.io/v1beta1的API
- 查询APIGroup /apis/rbac.authorization.k8s.io
- 查询所有rbac.authorization.k8s.io/v1的API
- Event
- PersistentVolumeClaim
- RoleBinding
- StatefulSet
- Job
- ReplicaSet
- 数据结构
- 权限和授权项
- 附录
- 历史API
- 修订记录
- SDK参考
- 场景代码示例
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
CCI应用进行优雅滚动升级
应用场景
用户在CCI中部署工作负载时,应用发布成了LoadBalance类型的Service或Ingress且对接的独享型ELB,经过ELB的访问流量支持直通到容器中;当应用进行滚动升级或者弹性扩缩容,通过配置容器探针,最短就绪时间等可以做到优雅升级,从而实现优雅弹性扩缩容(在升级或者扩缩容过程中业务不会出现5xx的错误响应)。
操作步骤
在此以nginx的无状态工作负载为例,提供了CCI中应用进行优雅滚动升级或者弹性扩缩容最佳实践。
- 在CCI控制台,单击左侧栏目树中的“工作负载 > 无状态 Deployment”,单击右上角“镜像创建”。
图1 创建无状态负载
- 在“容器配置”,单击“使用该镜像”,选择镜像完成。
- 在“容器设置”,单击展开“高级设置 > 健康检查 > 应用业务探针”,如下图设置工作负载业务探针。
说明:
该配置是检查用户业务是否就绪,不就绪则不转发流量到当前实例。
- 单击展开“生命周期”,配置容器的“停止前处理”,保证容器在退出过程中能够对外提供服务。
图3 配置生命周期
说明:
该配置是保证业务容器在退出过程中能够对外提供服务。
- 单击“下一步:访问设置”,如图4。
- 单击“下一步”完成工作负载的创建。
- 配置最短就绪时间。
最短就绪时间,用于指定新创建的Pod在没有任意容器崩溃情况下的最小就绪时间,只有超出这个时间Pod才被视为可用。
“最短就绪时间”需在右上角的“YAML编辑”进行配置。如图5:说明:
- 推荐的配置minReadySeconds时长,为业务容器的启动预期时间加上ELB服务下发member到生效的时间。
- minReadySeconds的时长需要小于sleep时长,保证旧的容器停止并退出之前,新的容器已经准备就绪。
- 配置完成后,对应用进行升级和弹性扩缩容的打流测试。
准备一台集群外的客户端节点,预置检测脚本detection_script.sh,内容如下,其中100.85.125.90:7552为service的公网访问地址:
#! /bin/bash for (( ; ; )) do curl -I 100.85.125.90:7552 | grep "200 OK" if [ $? -ne 0 ]; then echo "response error!" exit 1 fi done
- 运行检测脚本:bash detection_script.sh,并在CCI界面触发应用的滚动升级,如图6修改了容器规格,触发了应用的滚动升级。
滚动升级的过程中,应用的访问并未中断,并且返回的请求都是“200OK”,说明升级过程是优雅升级,没有中断的。
父主题: 负载管理