首页/云/Kubernetes 速查/nodeAffinity 与 required/preferred
本包目录(307 条)
kubectl 基础56 条工作负载36 条网络与服务55 条配置与存储54 条
调度与资源52 条
集群运维与排障54 条

nodeAffinity 与 required/preferred

比 nodeSelector 更细:required 是硬约束(不满足不调度),preferred 是加权软偏好;支持 In/NotIn/Gt/Lt 等操作符。

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

affinity 示例

affinity 示例
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: topology.kubernetes.io/zone
                operator: In
                values: [cn-hangzhou-b, cn-hangzhou-c]
      preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 80
          preference:
            matchExpressions:
              - key: disktype
                operator: In
                values: [ssd]
字段中的 IgnoredDuringExecution:Pod 运行后节点标签变化不会触发重新调度。

易错点

  • 把硬约束写成 preferred:不满足照样调度上去,需要等故障才被发现
  • required 条件与节点池标签长期不同步,扩缩容时容易踩空

数据来源与参考

  • Kubernetes 官方文档 · 节点亲和性
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌