首页/云/云与容器速查/节点选择与亲和性调度
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条容器与 Docker106 条
Kubernetes68 条
容器排障33 条

节点选择与亲和性调度

把 Pod 引导到目标节点:nodeSelector 简单硬性;nodeAffinity 支持 required/preferred 与运算符;podAntiAffinity 让同类副本分散,避免单点。

云与容器速查云更新于 2026-10-12
nodeSelectorkey: value 硬条件,最易用
nodeAffinity.required硬条件 + In/NotIn/Exists 运算符
nodeAffinity.preferred软条件:满足更好,不满足也调度
podAntiAffinitypreferredDuringScheduling 让副本跨节点分散
topologySpreadConstraints按 zone/node 均匀分布的新一代方案

组合示例

组合示例
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: disktype
                operator: In
                values: [ssd]
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 100
          podAffinityTerm:
            labelSelector:
              matchLabels: { app: web }
            topologyKey: kubernetes.io/hostname
硬条件写太死会把 Pod 卡成 Pending:关键业务用 preferred 保底可调度,再叠加 PDB 保障可用性。

易错点

  • required 条件无节点满足:Pod 长期 Pending,事件里才有线索
  • topologyKey 选错(如 zone):跨机架分散意图落空

数据来源与参考

  • Kubernetes Docs:Assigning Pods to Nodes
  • Kubernetes Docs:Pod Topology Spread Constraints

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌