4.3.3. 配置首选的节点关联性规则


您可以使用 偏好规则 来指示匹配节点不可用的调度程序,将 pod 调度到其他节点上,以确保工作负载应用程序运行。

对于偏好规则,调度程序会尝试强制执行规则,但不保证强制实施。

以下流程演示了一个简单的配置,它会创建一个节点以及调度程序尝试放置到节点上的 pod。

流程

  1. 创建具有特定标签的 pod:

    1. 使用以下内容创建 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 调度到您编辑的节点上,请使用与节点中标签相同的 keyvalues 参数:

      weight
      为节点指定一个数字为 1-100 的权重。优先选择权重最高的节点。
      key
      指定必须匹配的键/值对键(标签),才能应用该规则。
      operator
      指定节点上的标签和 Pod spec 中 matchExpression 参数的值集合之间的关系。这个值可以是 InNotInExistsDoesNotExistLtGt。没有明确的节点反关联性概念,但使用 NotInDoesNotExist 运算符就能实现这种行为。
      values
      指定必须匹配键/值对(标签)才能应用该规则的值。
    2. 创建 pod。

      $ oc create -f <file-name>.yaml
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部