滚动升级时临时允许本地Pod超过设定最大值
在执行滚动升级时,为了保证业务平滑运行,系统会在特定阶段临时允许节点上运行的Pod数超过原本设定的最大数量。该超量状态仅在升级期间生效,升级完成后系统会自动恢复到用户设定的副本数与调度策略,不会长期影响资源使用。
约束与限制
使用该能力前,请确保满足以下条件:
- 使用了SchedulingProfile的localPrefer策略,并设置了本地允许最大值maxNum。
- 本地集群预留资源充足,能够承载滚动升级过程中临时增加的Pod,否则临时增加的Pod可能会被调度到CCI。
流程原理

在滚动升级过程中,由于maxSurge的设置,新旧版本Pod将同时存在,导致Pod数量短暂大于replicas。在此期间:
- profile关联的总Pod数会短暂超过maxNum。
- 为保证调度一致,多出的Pod不会调度到CCI,而是继续留在本地。
- 通过本地保留超量Pod,保证滚动升级前后Pod 在本地和CCI的分布一致。
- 滚动升级完成后,随着旧版本Pod的清理,本地Pod数量恢复至正常值,不再超过maxNum。
操作步骤
- 登录CCE控制台。
- 选择CCE集群,单击进入CCE集群总览页面。
- 在导航栏左侧单击“插件中心”,进入插件中心首页。
- 单击“CCE 突发弹性引擎 (对接 CCI)”旁边的“编辑”。
- 单击左上角的“编辑YAML”。
- 将“enableScheduleProfileLocalSurge”的值设置为“true”,然后单击“确定”。
enableScheduleProfileLocalSurge:true
示例
- profile.yaml
apiVersion: scheduling.cci.io/v2 kind: ScheduleProfile metadata: name: test-local-profile namespace: test spec: objectLabels: matchLabels: app: whd-test strategy: localPrefer virtualNodes: - type: bursting-node location: local: maxNum: 10 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 2 cci: scaleDownPriority: 10 - Workload yaml(滚动升级策略):
apiVersion: apps/v1 # 注意这里与Pod的区别,Deployment是apps/v1而不是v1 kind: Deployment # 资源类型为Deployment metadata: name: deploy-test # Deployment的名称 namespace: test spec: replicas: 10 # Pod的数量,Deployment会确保一直有10个Pod运行 selector: # Label Selector matchLabels: app: deploy-test template: # Pod的定义,用于创建Pod,也称为Pod template metadata: labels: app: deploy-test spec: containers: - image: swr.cn-north-7.myhuaweicloud.com/cci-test/nginx:latest name: container-0 resources: requests: cpu: 200m memory: 200Mi imagePullSecrets: - name: default-secret strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 35% maxSurge: 35%