华为云UCS-配置工作负载升级策略:升级示例
升级示例
Deployment的升级可以是声明式的,也就是说只需要修改Deployment的YAML定义即可,比如使用kubectl edit命令将上面Deployment中的镜像修改为nginx:alpine。修改完成后再查询ReplicaSet和Pod,发现创建了一个新的ReplicaSet,Pod也重新创建了。
$ kubectl edit deploy nginx $ kubectl get rs NAME DESIRED CURRENT READY AGE nginx-6f9f58dffd 2 2 2 1m nginx-7f98958cdf 0 0 0 48m $ kubectl get pods NAME READY STATUS RESTARTS AGE nginx-6f9f58dffd-tdmqk 1/1 Running 0 1m nginx-6f9f58dffd-tesqr 1/1 Running 0 1m
Deployment可以通过maxSurge和maxUnavailable两个参数控制升级过程中同时重新创建Pod的比例,这在很多时候是非常有用,配置如下所示。
spec: strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 type: RollingUpdate
在前面的例子中,由于spec.replicas是2,如果maxSurge和maxUnavailable都为默认值25%,那实际升级过程中,maxSurge允许最多3个Pod存在(向上取整,2*1.25=2.5,取整为3),而maxUnavailable则不允许有Pod Unavailable(向上取整,2*0.75=1.5,取整为2),也就是说在升级过程中,一直会有2个Pod处于运行状态,每次新建一个Pod,等这个Pod创建成功后再删掉一个旧Pod,直至Pod全部为新Pod。
- GaussDB升级_云数据库GaussDB升级_GaussDB如何升级-华为云
- 怎样升级主机安全-华为云
- 云数据库 RDS for MySQL版本升级_MySQL如何进行版本升级_华为云
- 云数据库RDS for MySQL版本升级_MySQL版本_升级数据库版本
- 分布式云原生集合示例_华为云分布式云原生_华为云UCS集合示例
- 工作负载_云容器引擎_什么是工作负载
- GaussDB(for MySQL)重点特性介绍_升级Proxy内核版本_重启Proxy实例
- 容器云平台是什么_CCE证书_云平台容器技术
- 分布式云原生分发应用实例_华为云分布式云原生_华为云UCS分发应用实例
- CCE云容器_什么是云容器_云容器部署