跳转到内容

扩缩原生节点池

  • 功能名称: 扩缩原生节点池
  • 主要对象: MachineSet
  • 文档更新时间: 2026-06-17
  • Agent 友好度: ⭐⭐⭐⭐

原生节点池通过 MachineSetreplicasscaling 字段控制节点数量。未开启自动伸缩时,可以直接调整 replicas;开启自动伸缩时,主要调整 minReplicasmaxReplicas 和扩容策略。


Terminal window
kubectl get machineset
kubectl describe machineset native-backend-pool
Terminal window
kubectl scale machineset/native-backend-pool --replicas=5

验证:

Terminal window
kubectl get machine
kubectl get nodes -l node-type=native

编辑 MachineSet:

Terminal window
kubectl edit machineset native-backend-pool

修改:

spec:
replicas: 3
scaling:
minReplicas: 2
maxReplicas: 20
createPolicy: ZonePriority

常用扩容策略:

策略说明适用场景
ZonePriority首选可用区优先希望优先使用指定可用区
ZoneEquality多可用区打散希望节点跨可用区均衡

Terminal window
kubectl get nodes -l node-type=native -o wide
kubectl cordon <node-name>
kubectl drain <node-name> \
--ignore-daemonsets \
--delete-emptydir-data \
--timeout=10m

然后再降低 MachineSet 副本数:

Terminal window
kubectl scale machineset/native-backend-pool --replicas=2

  1. 如果直接删除 Machine,但 MachineSet.spec.replicas 未降低,控制器会重新创建节点。
  2. 开启自动伸缩后,不建议长期手动调整副本数。
  3. 缩容前先确认业务 Pod 已迁移,避免关键服务容量不足。
  4. 多可用区扩容前确认各子网 IP 和机型库存。