3.11. 使用 Multiarch Tuning Operator 管理多架构集群中的工作负载


Multiarch Tuning Operator 在多架构集群中优化工作负载管理,以及在到多架构环境的单架构集群中进行工作负载管理。

通过架构感知的工作负载调度,调度程序可以将 pod 放置到与 pod 镜像架构匹配的节点上。

默认情况下,调度程序不会在决定新 pod 放置到节点上时考虑 pod 容器镜像的架构。

要启用架构感知工作负载调度,您必须创建 ClusterPodPlacementConfig 对象。在创建 ClusterPodPlacementConfig 对象时,Multiarch Tuning Operator 会部署必要的操作对象来支持架构感知的工作负载调度。您还可以使用 ClusterPodPlacementConfig 对象中的 nodeAffinityScoring 插件来为节点架构设置集群范围的分数。如果启用 nodeAffinityScoring 插件,调度程序首先过滤兼容架构的节点,然后将 pod 放置到分数最高的节点上。

创建 pod 时,操作对象执行以下操作:

  1. 添加 multiarch.openshift.io/scheduling-gate 调度门,以防止调度 pod。
  2. 计算一个调度 predicate,其中包含 kubernetes.io/arch 标签支持的架构值。
  3. 将调度 predicate 集成为 pod 规格中的 nodeAffinity 要求。
  4. 从 pod 中删除调度授权。
重要

请注意以下操作对象行为:

  • 如果 nodeSelector 字段已配置了工作负载的 kubernetes.io/arch 标签,则操作对象不会更新该工作负载的 nodeAffinity 字段。
  • 如果 nodeSelector 字段没有使用工作负载的 kubernetes.io/arch 标签配置,则操作对象会更新该工作负载的 nodeAffinity 字段。但是,在这个 nodeAffinity 字段中,操作对象只更新没有使用 kubernetes.io/arch 标签配置的节点选择器术语。
  • 如果已经设置了 nodeName 字段,Multiarch Tuning Operator 不会处理 pod。
  • 如果 pod 归 DaemonSet 所有,则 operand 不会更新 nodeAffinity 字段。
  • 如果为 kubernetes.io/arch 标签设置了 nodeSelectornodeAffinitypreferredAffinity 字段,则 operand 不会更新 nodeAffinity 字段。
  • 如果为 kubernetes.io/arch 标签只设置了 nodeSelectornodeAffinity 字段,并且禁用了 nodeAffinityScoring 插件,则 operand 不会更新 nodeAffinity 字段。
  • 如果 nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution 字段已包含基于 kubernetes.io/arch 标签的分数节点的条件,则 operand 会忽略 nodeAffinityScoring 插件中的配置。

3.11.1. 使用 CLI 安装 Multiarch Tuning Operator

您可以使用 OpenShift CLI (oc)安装 Multiarch Tuning Operator。

先决条件

  • 已安装 oc
  • 已以具有 cluster-admin 权限的用户身份登录 oc

流程

  1. 运行以下命令,创建一个名为 openshift-multiarch-tuning-operator 的新项目:

    $ oc create ns openshift-multiarch-tuning-operator
  2. 创建一个 OperatorGroup 对象:

    1. 使用用于创建 OperatorGroup 对象的配置创建 YAML 文件。

      创建 OperatorGroup 对象的 YAML 配置示例:

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: openshift-multiarch-tuning-operator
        namespace: openshift-multiarch-tuning-operator
      spec: {}

    2. 运行以下命令来创建 OperatorGroup 对象:

      $ oc create -f <file_name> 
      1
      1
      <file_name> 替换为包含 OperatorGroup 对象配置的 YAML 文件的名称。
  3. 创建 Subscription 对象:

    1. 使用用于创建 Subscription 对象的配置创建 YAML 文件。

      创建 Subscription 对象的 YAML 配置示例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: openshift-multiarch-tuning-operator
        namespace: openshift-multiarch-tuning-operator
      spec:
        channel: stable
        name: multiarch-tuning-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
        installPlanApproval: Automatic
        startingCSV: multiarch-tuning-operator.<version>

    2. 运行以下命令来创建 Subscription 对象:

      $ oc create -f <file_name> 
      1
      1
      <file_name> 替换为包含 Subscription 对象配置的 YAML 文件的名称。
注意

有关配置 Subscription 对象和 OperatorGroup 对象的详情,请参阅"使用 CLI 从软件目录安装"。

验证

  1. 要验证是否安装了 Multiarch Tuning Operator,请运行以下命令:

    $ oc get csv -n openshift-multiarch-tuning-operator

    输出示例

    NAME                                   DISPLAY                     VERSION       REPLACES                            PHASE
    multiarch-tuning-operator.<version>   Multiarch Tuning Operator   <version>     multiarch-tuning-operator.1.0.0      Succeeded

    如果 Operator 处于 Succeeded 阶段,则安装可以成功。

  2. 可选:要验证是否创建了 OperatorGroup 对象,请运行以下命令:

    $ oc get operatorgroup -n openshift-multiarch-tuning-operator

    输出示例

    NAME                                        AGE
    openshift-multiarch-tuning-operator-q8zbb   133m

  3. 可选:要验证是否已创建 Subscription 对象,请运行以下命令:

    $ oc get subscription -n openshift-multiarch-tuning-operator

    输出示例

    NAME                        PACKAGE                     SOURCE                  CHANNEL
    multiarch-tuning-operator   multiarch-tuning-operator   redhat-operators        stable

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部