更新时间:2025-08-12 GMT+08:00
多虚拟节点配置
功能说明
- 支持在集群中存在1个全局虚拟节点和多个AZ级虚拟节点,调度到全局节点上的Pod在CCI侧会在所有支持的可用区中随机调度,调度到AZ级虚拟节点上的Pod在CCI侧只会被调度到对应的一个AZ中。如果您不想要CCI侧随机调度,您需要手动将全局级别的虚拟节点(即bursting-node节点)设为不可调度状态。
- AZ级虚拟节点具有`failure-domain.beta.kubernetes.io/zone`和`topology.kubernetes.io/zone`两个Label,值为AZ名,可让Pod根据该节点Label来调度。
- 全局虚拟节点默认存在,不可删除,AZ级虚拟节点可以根据configMap配置动态增减。
- 支持配置节点的可调度CPU、Memory资源(capacity、allocatable)。
- 自插件1.5.29版本起,CCI服务会在AZ故障时将对应的虚拟节点设置为不可调度,租户可以查看虚拟节点的status.conditions信息感知对应AZ是否故障以及故障原因。当CCI将虚拟节点设置为不可调度时,表示租户的存量业务可能受损,新业务不应继续往对应的虚拟节点调度。
约束与限制
- 不带“.”的键,键的名称即为AZ名(不能配置为“global”,global意为全局节点),其值配置为"true"表示启用该AZ对应的虚拟节点。
- 带“.”的键,第一个“.”之前为AZ名,”.”之后为节点参数,当前支持“cpu”、“memory”,值与k8s resource规则一致(支持k、Mi、Gi等单位)。“cpu”、“memory”为可选配置,不配置则会为较大的默认值(cpu:200k,memory:1600000Gi)。
- 键只能为小写,且需要满足RFC 1123 subdomain格式(同节点名规则),AZ名最长支持47个字符。
- AZ级虚拟节点的数量最多支持20个。
- Bursting检测AZ故障周期默认是5分钟,用户可以通过设置resource-syncer的启动参数'--az-status-sync-period'参数自行决定检测周期,最小为1min。
配置样例
在kube-system命名空间下配置如下ConfigMap
apiVersion: v1 kind: ConfigMap metadata: name: bursting-node namespace: kube-system data: global.cpu: 2k # global代表全局虚拟节点,全局虚拟节点默认创建,不可删除,可选配置节点的可用cpu、memory资源,不配置则为较大的默认值(cpu:200k,memory:1600000Gi) global.memory: 4000Gi region-a: "true" # 如添加了键等于AZ名的配置项,且值为"true",则会自动创建出对应AZ的虚拟节点 region-a.cpu: 5k # cpu、memory为可选配置,不配置则为较大的默认值(cpu:200k,memory:1600000Gi) region-a.memory: 8000Gi region-b: "true"
如上配置则集群中预期存在3个节点
- bursting-node
- bursting-node-region-a
- bursting-node-region-b
父主题: 通过CCE使用CCI