$ oc create ns openshift-multiarch-tuning-operator
多架构调整操作符优化多架构集群和正在过渡到多架构环境的单架构集群中的工作负载管理。
基于架构的工作负载调度允许调度程序将 Pod 部署到与 Pod 镜像架构匹配的节点上。
默认情况下,调度程序在确定将新的 Pod 部署到节点时,不会考虑 Pod 的容器镜像的架构。
要启用基于架构的工作负载调度,必须创建 `ClusterPodPlacementConfig` 对象。创建 `ClusterPodPlacementConfig` 对象时,多架构调整操作符会部署必要的操作数以支持基于架构的工作负载调度。
创建 Pod 时,操作数执行以下操作:
添加 `multiarch.openshift.io/scheduling-gate` 调度门,以防止调度 Pod。
计算一个调度谓词,其中包含 `kubernetes.io/arch` 标签支持的架构值。
将调度谓词集成到 Pod 说明中的 `nodeAffinity` 需求中。
从 Pod 中删除调度门。
注意以下操作数行为:
|
您可以使用OpenShift CLI (oc
) 安装多架构调整操作符。
您已安装oc
。
您已以具有cluster-admin
权限的用户身份登录到oc
。
运行以下命令创建一个名为openshift-multiarch-tuning-operator
的新项目
$ oc create ns openshift-multiarch-tuning-operator
创建一个OperatorGroup
对象
创建一个包含OperatorGroup
对象配置的YAML文件。
OperatorGroup
对象的YAML示例配置apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: openshift-multiarch-tuning-operator
namespace: openshift-multiarch-tuning-operator
spec: {}
运行以下命令创建OperatorGroup
对象
$ oc create -f <file_name> (1)
1 | 将<file_name> 替换为包含OperatorGroup 对象配置的YAML文件名。 |
创建一个Subscription
对象
创建一个包含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.v1.0.0
运行以下命令创建Subscription
对象
$ oc create -f <file_name> (1)
1 | 将<file_name> 替换为包含Subscription 对象配置的YAML文件名。 |
有关配置 |
要验证多架构调整操作符是否已安装,请运行以下命令
$ oc get csv -n openshift-multiarch-tuning-operator
NAME DISPLAY VERSION REPLACES PHASE
multiarch-tuning-operator.v1.0.0 Multiarch Tuning Operator 1.0.0 multiarch-tuning-operator.v0.9.0 Succeeded
如果操作符处于Succeeded
阶段,则安装成功。
可选:要验证OperatorGroup
对象是否已创建,请运行以下命令
$ oc get operatorgroup -n openshift-multiarch-tuning-operator
NAME AGE
openshift-multiarch-tuning-operator-q8zbb 133m
可选:要验证Subscription
对象是否已创建,请运行以下命令
$ oc get subscription -n openshift-multiarch-tuning-operator
NAME PACKAGE SOURCE CHANNEL
multiarch-tuning-operator multiarch-tuning-operator redhat-operators stable
您可以使用OpenShift Container Platform Web控制台安装多架构调整操作符。
您可以访问具有cluster-admin
权限的集群。
您可以访问OpenShift Container Platform Web控制台。
登录到OpenShift Container Platform Web控制台。
导航到**操作符 → OperatorHub**。
在搜索字段中输入**多架构调整操作符**。
单击**多架构调整操作符**。
从**版本**列表中选择**多架构调整操作符**版本。
单击**安装**
在**操作符安装**页面上设置以下选项
将**更新通道**设置为**稳定**。
将**安装模式**设置为**集群上的所有命名空间**。
将**已安装命名空间**设置为**操作符推荐的命名空间**或**选择命名空间**。
推荐的操作符命名空间是openshift-multiarch-tuning-operator
。如果openshift-multiarch-tuning-operator
命名空间不存在,它将在操作符安装期间创建。
如果您选择**选择命名空间**,则必须从**选择项目**列表中为操作符选择一个命名空间。
**更新审批**为**自动**或**手动**。
如果您选择**自动**更新,操作符生命周期管理器 (OLM) 将自动更新多架构调整操作符的运行实例,无需任何干预。
如果您选择**手动**更新,OLM 将创建一个更新请求。作为集群管理员,您必须手动批准更新请求才能将多架构调整操作符更新到较新版本。
可选:选择**在此命名空间上启用操作符推荐的集群监控**复选框。
单击**安装**。
导航到**操作符** → **已安装的操作符**。
验证**多架构调整操作符**是否已列出,其**状态**字段在openshift-multiarch-tuning-operator
命名空间中为**Succeeded**。
安装多架构调整操作符后,您可以验证集群中工作负载的多架构支持。您可以使用 Pod 标签识别和管理基于其架构兼容性的 Pod。这些标签会自动设置在新创建的 Pod 上,以提供对其架构支持的见解。
下表描述了创建 Pod 时多架构调整操作符添加的标签
标签 | 描述 |
---|---|
|
该 Pod 支持多种架构。 |
|
该 Pod 只支持单一架构。 |
|
该 Pod 支持 |
|
该 Pod 支持 |
|
该 Pod 支持 |
|
该 Pod 支持 |
|
操作符已设置架构的节点亲和性要求。 |
|
操作符未设置节点亲和性要求。例如,当 Pod 已具有架构的节点亲和性时,多架构调整操作符会将此标签添加到 Pod。 |
|
该 Pod 受限。 |
|
该 Pod 限制已移除。 |
|
构建节点亲和性要求时发生错误。 |
安装多架构调整操作符后,您必须创建ClusterPodPlacementConfig
对象。创建此对象时,多架构调整操作符将部署一个操作数,该操作数启用感知架构的工作负载调度。
您只能创建 |
ClusterPodPlacementConfig
对象配置示例apiVersion: multiarch.openshift.io/v1beta1
kind: ClusterPodPlacementConfig
metadata:
name: cluster (1)
spec:
logVerbosityLevel: Normal (2)
namespaceSelector: (3)
matchExpressions:
- key: multiarch.openshift.io/exclude-pod-placement
operator: DoesNotExist
1 | 您必须将此字段值设置为cluster 。 |
2 | 可选:您可以将字段值设置为Normal 、Debug 、Trace 或TraceAll 。默认情况下,该值为Normal 。 |
3 | 可选:您可以配置namespaceSelector 来选择多架构调整操作符的 Pod 布置操作数必须处理 Pod 的nodeAffinity 的命名空间。默认情况下考虑所有命名空间。 |
在此示例中,operator
字段值设置为DoesNotExist
。因此,如果在命名空间中将key
字段值 (multiarch.openshift.io/exclude-pod-placement
) 设置为标签,则操作数不会处理该命名空间中 Pod 的nodeAffinity
。相反,操作数将处理不包含该标签的命名空间中 Pod 的nodeAffinity
。
如果您希望操作数仅处理特定命名空间中 Pod 的nodeAffinity
,您可以按如下方式配置namespaceSelector
namespaceSelector:
matchExpressions:
- key: multiarch.openshift.io/include-pod-placement
operator: Exists
在此示例中,operator
字段值设置为Exists
。因此,操作数仅处理包含multiarch.openshift.io/include-pod-placement
标签的命名空间中 Pod 的nodeAffinity
。
此操作符排除以 |
要部署启用架构感知工作负载调度的 Pod 布置操作符,您可以使用 OpenShift CLI (oc
) 创建 ClusterPodPlacementConfig
对象。
您已安装oc
。
您已以具有cluster-admin
权限的用户身份登录到oc
。
您已安装 Multiarch Tuning Operator。
创建一个 ClusterPodPlacementConfig
对象 YAML 文件
ClusterPodPlacementConfig
对象配置示例apiVersion: multiarch.openshift.io/v1beta1
kind: ClusterPodPlacementConfig
metadata:
name: cluster
spec:
logVerbosityLevel: Normal
namespaceSelector:
matchExpressions:
- key: multiarch.openshift.io/exclude-pod-placement
operator: DoesNotExist
运行以下命令创建 ClusterPodPlacementConfig
对象
$ oc create -f <file_name> (1)
1 | 将 <file_name> 替换为 ClusterPodPlacementConfig 对象 YAML 文件的名称。 |
要检查 ClusterPodPlacementConfig
对象是否已创建,请运行以下命令
$ oc get clusterpodplacementconfig
NAME AGE
cluster 29s
要部署启用架构感知工作负载调度的 Pod 布置操作符,您可以使用 OpenShift Container Platform Web 控制台创建 ClusterPodPlacementConfig
对象。
您可以访问具有cluster-admin
权限的集群。
您可以访问OpenShift Container Platform Web控制台。
您已安装 Multiarch Tuning Operator。
登录到OpenShift Container Platform Web控制台。
导航到**操作符** → **已安装的操作符**。
在**已安装的操作符**页面上,单击**Multiarch Tuning Operator**。
单击**集群 Pod 布置配置**选项卡。
选择**表单视图**或**YAML 视图**。
配置 ClusterPodPlacementConfig
对象参数。
单击**创建**。
可选:如果您想编辑 ClusterPodPlacementConfig
对象,请执行以下操作
单击**集群 Pod 布置配置**选项卡。
从选项菜单中选择**编辑 ClusterPodPlacementConfig**。
单击**YAML** 并编辑 ClusterPodPlacementConfig
对象参数。
单击**保存**。
在**集群 Pod 布置配置**页面上,检查 ClusterPodPlacementConfig
对象是否处于就绪
状态。
您只能创建 ClusterPodPlacementConfig
对象的一个实例。如果您想重新创建此对象,必须先删除现有实例。
您可以使用 OpenShift CLI (oc
) 删除此对象。
您已安装oc
。
您已以具有cluster-admin
权限的用户身份登录到oc
。
登录到 OpenShift CLI (oc
)。
运行以下命令删除 ClusterPodPlacementConfig
对象
$ oc delete clusterpodplacementconfig cluster
要检查 ClusterPodPlacementConfig
对象是否已删除,请运行以下命令
$ oc get clusterpodplacementconfig
No resources found
您只能创建 ClusterPodPlacementConfig
对象的一个实例。如果您想重新创建此对象,必须先删除现有实例。
您可以使用 OpenShift Container Platform Web 控制台删除此对象。
您可以访问具有cluster-admin
权限的集群。
您可以访问OpenShift Container Platform Web控制台。
您已创建 ClusterPodPlacementConfig
对象。
登录到OpenShift Container Platform Web控制台。
导航到**操作符** → **已安装的操作符**。
在**已安装的操作符**页面上,单击**Multiarch Tuning Operator**。
单击**集群 Pod 布置配置**选项卡。
从选项菜单中选择**删除 ClusterPodPlacementConfig**。
单击**删除**。
在**集群 Pod 布置配置**页面上,检查 ClusterPodPlacementConfig
对象是否已删除。
您可以使用 OpenShift CLI (oc
) 卸载 Multiarch Tuning Operator。
您已安装oc
。
您已以具有cluster-admin
权限的用户身份登录到oc
。
您已删除 ClusterPodPlacementConfig
对象。
在卸载 Multiarch Tuning Operator 之前,必须删除 |
运行以下命令获取 Multiarch Tuning Operator 的 Subscription
对象名称
$ oc get subscription.operators.coreos.com -n <namespace> (1)
1 | 将 <namespace> 替换为您要卸载 Multiarch Tuning Operator 的命名空间名称。 |
NAME PACKAGE SOURCE CHANNEL
openshift-multiarch-tuning-operator multiarch-tuning-operator redhat-operators stable
运行以下命令获取 Multiarch Tuning Operator 的 currentCSV
值
$ oc get subscription.operators.coreos.com <subscription_name> -n <namespace> -o yaml | grep currentCSV (1)
1 | 将 <subscription_name> 替换为 Subscription 对象名称。例如:openshift-multiarch-tuning-operator 。将 <namespace> 替换为您要卸载 Multiarch Tuning Operator 的命名空间名称。 |
currentCSV: multiarch-tuning-operator.v1.0.0
运行以下命令删除 Subscription
对象
$ oc delete subscription.operators.coreos.com <subscription_name> -n <namespace> (1)
1 | 将 <subscription_name> 替换为 Subscription 对象名称。将 <namespace> 替换为您要卸载 Multiarch Tuning Operator 的命名空间名称。 |
subscription.operators.coreos.com "openshift-multiarch-tuning-operator" deleted
使用 currentCSV
值运行以下命令删除目标命名空间中 Multiarch Tuning Operator 的 CSV
$ oc delete clusterserviceversion <currentCSV_value> -n <namespace> (1)
1 | 将 <currentCSV> 替换为 Multiarch Tuning Operator 的 currentCSV 值。例如:multiarch-tuning-operator.v1.0.0 。将 <namespace> 替换为您要卸载 Multiarch Tuning Operator 的命名空间名称。 |
clusterserviceversion.operators.coreos.com "multiarch-tuning-operator.v1.0.0" deleted
要验证 Multiarch Tuning Operator 是否已卸载,请运行以下命令
$ oc get csv -n <namespace> (1)
1 | 将 <namespace> 替换为您已卸载 Multiarch Tuning Operator 的命名空间名称。 |
No resources found in openshift-multiarch-tuning-operator namespace.
您可以使用 OpenShift Container Platform Web 控制台卸载 Multiarch Tuning Operator。
您可以使用具有 cluster-admin
权限的集群。
您已删除 ClusterPodPlacementConfig
对象。
在卸载 Multiarch Tuning Operator 之前,必须删除 |
登录到OpenShift Container Platform Web控制台。
导航到**操作符 → OperatorHub**。
在搜索字段中输入**多架构调整操作符**。
单击**多架构调整操作符**。
单击**详细信息**选项卡。
从**操作**菜单中,选择**卸载操作符**。
出现提示时,单击**卸载**。
导航到**操作符** → **已安装的操作符**。
在**已安装的操作符**页面上,验证**Multiarch Tuning Operator** 是否未列出。