Kubernetes 资源管理与调度:节点选择、亲和性与优先级策略
1. 节点标签与调度基础
节点标签是 Kubernetes 中描述节点特征的重要手段,例如 kubernetes.io/hostname
、 owner
和 purpose
等标签,能帮助我们对节点进行分类和描述。通过这些标签,我们可以指定特定的 Pod 只能部署在具有相同可用性区域的节点上,如使用 failure-domain.beta.kubernetes.io/zone: az1
标签。目前,我们可以使用两种表达式来配置 Pod 的调度条件: nodeSelector
和 Pod/节点亲和性。
1.1 Node Selector
Node Selector
是手动放置 Pod 最直观的方式,类似于服务对象的 Pod 选择器,但用于选择节点。Pod 只会被放置在具有匹配标签的节点上,对应的标签键值对在 Pod 清单的 .spec.nodeSelector
中设置,形式如下:
spec:
nodeSelector:
<node_label_key>: <label_value>
可以在选择器中分配多个键值对,Kubernetes 会通过这些键值对的交集为 Pod 找到合适的节点。例如: