文档首页/ 云容器实例 CCI/ 用户指南/ 通过CCE使用CCI/ 调度负载到CCI 2.0/ 滚动升级时临时允许本地Pod超过设定最大值
更新时间:2025-12-24 GMT+08:00
分享

滚动升级时临时允许本地Pod超过设定最大值

在执行滚动升级时,为了保证业务平滑运行,系统会在特定阶段临时允许节点上运行的Pod数超过原本设定的最大数量。该超量状态仅在升级期间生效,升级完成后系统会自动恢复到用户设定的副本数与调度策略,不会长期影响资源使用。

约束与限制

使用该能力前,请确保满足以下条件:

  • 使用了SchedulingProfile的localPrefer策略,并设置了本地允许最大值maxNum。
  • 本地集群预留资源充足,能够承载滚动升级过程中临时增加的Pod,否则临时增加的Pod可能会被调度到CCI。

流程原理

在滚动升级过程中,由于maxSurge的设置,新旧版本Pod将同时存在,导致Pod数量短暂大于replicas。在此期间:

  1. profile关联的总Pod数会短暂超过maxNum。
  2. 为保证调度一致,多出的Pod不会调度到CCI,而是继续留在本地。
  3. 通过本地保留超量Pod,保证滚动升级前后Pod 在本地和CCI的分布一致。
  4. 滚动升级完成后,随着旧版本Pod的清理,本地Pod数量恢复至正常值,不再超过maxNum。

操作步骤

  1. 登录CCE控制台
  2. 选择CCE集群,单击进入CCE集群总览页面。
  3. 在导航栏左侧单击“插件中心”,进入插件中心首页。
  4. 单击“CCE 突发弹性引擎 (对接 CCI)”旁边的“编辑”。
  5. 单击左上角的“编辑YAML”。
  6. “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%

相关文档