首页/云/Kubernetes 速查/podAntiAffinity 打散部署
调度与资源52 条

podAntiAffinity 打散部署

让同标签的 Pod 互不同域:多副本跨节点、跨可用区打散的标准手段;硬反亲和遇到节点不足会造成 Pending。

Kubernetes 速查云更新于 2026-10-12

节点级硬打散 + 可用区级软偏好

节点级硬打散 + 可用区级软偏好
spec:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchLabels:
              app: web
          topologyKey: kubernetes.io/hostname
      preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 100
          podAffinityTerm:
            labelSelector:
              matchLabels:
                app: web
            topologyKey: topology.kubernetes.io/zone
常见组合:节点级用硬反亲和保证不叠放,可用区级用软偏好兼顾容灾与利用率。

易错点

  • 硬反亲和 + 副本数大于域数量:多出的副本必然 Pending,扩副本前先算拓扑容量
  • 给系统插件加硬反亲和要谨慎,可能把关键组件副本压到不可用

数据来源与参考

  • Kubernetes 官方文档 · Pod 反亲和性
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌