4.3.3. 配置首选的节点关联性规则
您可以使用 偏好规则 来指示匹配节点不可用的调度程序,将 pod 调度到其他节点上,以确保工作负载应用程序运行。
对于偏好规则,调度程序会尝试强制执行规则,但不保证强制实施。
以下流程演示了一个简单的配置,它会创建一个节点以及调度程序尝试放置到节点上的 pod。
流程
创建具有特定标签的 pod:
使用以下内容创建 YAML 文件:
注意您不能直接将关联性添加到调度的 pod 中。
apiVersion: v1 kind: Pod metadata: name: s1 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: preference: matchExpressions: - key: e2e-az-name values: - e2e-az3 operator: In #...其中:
spec.affinity.nodeAffinity- 指定用于配置节点关联性的小节。
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution指定 偏好规则。配置 weight 和以下
preference.matchExpressions参数。如果希望新 pod 调度到您编辑的节点上,请使用与节点中标签相同的key和values参数:weight- 为节点指定一个数字为 1-100 的权重。优先选择权重最高的节点。
key- 指定必须匹配的键/值对键(标签),才能应用该规则。
operator-
指定节点上的标签和
Podspec 中matchExpression参数的值集合之间的关系。这个值可以是In、NotIn、Exists或DoesNotExist、Lt或Gt。没有明确的节点反关联性概念,但使用NotIn或DoesNotExist运算符就能实现这种行为。 values- 指定必须匹配键/值对(标签)才能应用该规则的值。
创建 pod。
$ oc create -f <file-name>.yaml