4.11. Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する
Multiarch Tuning Operator は、マルチアーキテクチャークラスター内およびマルチアーキテクチャー環境に移行するシングルアーキテクチャークラスター内のワークロード管理を最適化します。
アーキテクチャーを考慮したワークロードスケジューリングにより、スケジューラーは Pod イメージのアーキテクチャーに一致するノードに Pod を配置できます。
スケジューラーは、新しい Pod のノードへの配置を決定する際に、デフォルトでは Pod のコンテナーイメージのアーキテクチャーを考慮しません。
アーキテクチャーを考慮したワークロードのスケジューリングを有効にするには、ClusterPodPlacementConfig
オブジェクトを作成する必要があります。ClusterPodPlacementConfig
オブジェクトを作成すると、Multiarch Tuning Operator は、アーキテクチャーを考慮したワークロードスケジューリングをサポートするために必要なオペランドをデプロイします。
Pod が作成されると、オペランドは次のアクションを実行します。
-
Pod のスケジュールを防止するスケジューリングゲート
multiarch.openshift.io/scheduling-gate
を追加します。 -
kubernetes.io/arch
ラベルでサポートされているアーキテクチャー値を含むスケジューリング述語を計算します。 -
スケジューリング述語を Pod 仕様の
nodeAffinity
要件として統合します。 - Pod からスケジューリングゲートを削除します。
オペランドの次の動作に注意してください。
-
nodeSelector
フィールドがすでにワークロードのkubernetes.io/arch
ラベルで設定されている場合、オペランドはそのワークロードのnodeAffinity
フィールドを更新しません。 -
nodeSelector
フィールドがワークロードのkubernetes.io/arch
ラベルで設定されていない場合、オペランドはそのワークロードのnodeAffinity
フィールドを更新します。ただしnodeAffinity
フィールドでは、オペランドはkubernetes.io/arch
ラベルで設定されていないノードセレクター条件のみ更新します。 -
nodeName
フィールドがすでに設定されている場合、Multiarch Tuning Operator は Pod を処理しません。
4.11.1. CLI を使用した Multiarch Tuning Operator のインストール
OpenShift CLI (oc
) を使用して、Multiarch Tuning Operator をインストールできます。
前提条件
-
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 ファイルの名前に置き換えます。
Subscription
オブジェクトと OperatorGroup
オブジェクトの設定の詳細は、「CLI を使用した OperatorHub からのインストール」を参照してください。
検証
Multiarch Tuning Operator がインストールされていることを確認するには、次のコマンドを実行します。
$ 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
Operator が
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
4.11.2. Web コンソールを使用した Multiarch Tuning Operator のインストール
OpenShift Container Platform Web コンソールを使用して、Multiarch Tuning Operator をインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
OperatorHub に移動します。 - 検索フィールドに Multiarch Tuning Operator と入力します。
- Multiarch Tuning Operator をクリックします。
- Version リストから Multiarch Tuning Operator のバージョンを選択します。
- Install をクリックします。
Operator Installation ページで次のオプションを設定します。
- Update Channel を stable に設定します。
- Installation Mode を All namespaces on the cluster に設定します。
Installed Namespace を、Operator recommended Namespace か Select a Namespace に設定します。
推奨される Operator namespace は
openshift-multiarch-tuning-operator
です。openshift-multiarch-tuning- operator
namespace が存在しない場合は、Operator のインストール中に作成されます。Select a namespace を選択した場合は、Select Project リストから Operator の namespace を選択する必要があります。
Update approval で Automatic または Manual を選択します。
Automatic 更新を選択すると、Operator Lifecycle Manager (OLM) が管理者の介入なしで Multiarch Tuning Operator の実行中のインスタンスを自動的に更新します。
Manual 更新を選択すると、OLM は更新要求を作成します。クラスター管理者は、Multiarch Tuning Operator を新しいバージョンに更新するために、更新要求を手動で承認する必要があります。
- オプション: Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
- Install をクリックします。
検証
-
Operators
Installed Operators に移動します。 -
Multiarch Tuning Operator が、
openshift-multiarch-tuning-operator
namespace の Status フィールドに Succeeded としてリストされていることを確認します。
4.11.3. Multiarch Tuning Operator Pod ラベルとアーキテクチャーサポートの概要
Multiarch Tuning Operator をインストールした後、クラスター内のワークロードに対するマルチアーキテクチャーのサポートを確認できます。Pod ラベルを使用して、アーキテクチャーの互換性に基づき Pod を識別および管理できます。これらのラベルは、アーキテクチャーサポートに関する情報を提供するために、新しく作成された Pod に自動的に設定されます。
次の表は、Pod の作成時に Multiarch Tuning Operator が追加するラベルを説明しています。
ラベル | 説明 |
---|---|
| Pod は複数のアーキテクチャーをサポートします。 |
| Pod は単一のアーキテクチャーのみサポートします。 |
|
Pod は |
|
Pod は |
|
Pod は |
|
Pod は |
| Operator は、アーキテクチャーのノードアフィニティー要件を設定しました。 |
| Operator はノードアフィニティー要件を設定しませんでした。たとえば、Pod にすでにアーキテクチャーのノードアフィニティーがある場合、Multiarch Tuning Operator はこのラベルを Pod に追加します。 |
| Pod にはゲートがあります。 |
| Pod ゲートが削除されました。 |
| ノードアフィニティー要件のビルド時にエラーが発生しました。 |
4.11.4. ClusterPodPlacementConfig オブジェクトの作成
Multiarch Tuning Operator をインストールしたら、ClusterPodPlacementConfig
オブジェクトを作成する必要があります。このオブジェクトを作成すると、Multiarch Tuning Operator が、アーキテクチャーを考慮したワークロードスケジューリングを可能にするオペランドをデプロイします。
ClusterPodPlacementConfig
オブジェクトのインスタンスは 1 つだけ作成できます。
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
この例では、operator
フィールドの値が DoesNotExist
に設定されています。したがって、key
フィールドの値 (multiarch.openshift.io/exclude-pod-placement
) が namespace のラベルとして設定されている場合、オペランドはその namespace 内の Pod の nodeAffinity
を処理しません。代わりに、オペランドはこのラベルを含まない namespace 内の Pod の nodeAffinity
を処理します。
オペランドで特定の namespace 内の Pod の nodeAffinity
のみを処理する場合は、次のように namespaceSelector
を設定できます。
namespaceSelector: matchExpressions: - key: multiarch.openshift.io/include-pod-placement operator: Exists
この例では、operator
フィールドの値が Exists
に設定されています。したがって、オペランドは、multiarch.openshift.io/include-pod-placement
ラベルを含む namespace 内の Pod の nodeAffinity
のみを処理します。
この Operator は、kube-
で始まる namespace 内の Pod を除外します。また、コントロールプレーンノードでスケジュールされることが予想される Pod も除外されます。
4.11.4.1. CLI を使用した ClusterPodPlacementConfig オブジェクトの作成
アーキテクチャーを考慮したワークロードのスケジューリングを可能にする 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
4.11.4.2. Web コンソールを使用した ClusterPodPlacementConfig オブジェクトの作成
アーキテクチャーを考慮したワークロードのスケジューリングを可能にする Pod 配置オペランドをデプロイするには、OpenShift Container Platform Web コンソールを使用して ClusterPodPlacementConfig
オブジェクトを作成します。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Multiarch Tuning Operator がインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
Installed Operators に移動します。 - Installed Operators ページで、Multiarch Tuning Operator をクリックします。
- Cluster Pod Placement Config タブをクリックします。
- Form view または YAML view のいずれかを選択します。
-
ClusterPodPlacementConfig
オブジェクトのパラメーターを設定します。 - Create をクリックします。
オプション:
ClusterPodPlacementConfig
オブジェクトを編集する場合は、次の操作を実行します。- Cluster Pod Placement Config タブをクリックします。
- オプションメニューから Edit ClusterPodPlacementConfig を選択します。
-
YAML をクリックし、
ClusterPodPlacementConfig
オブジェクトのパラメーターを編集します。 - Save をクリックします。
検証
-
Cluster Pod Placement Config ページで、
ClusterPodPlacementConfig
オブジェクトがReady
状態であることを確認します。
4.11.5. CLI を使用した ClusterPodPlacementConfig オブジェクトの削除
ClusterPodPlacementConfig
オブジェクトのインスタンスは 1 つだけ作成できます。このオブジェクトを再作成する場合は、まず既存のインスタンスを削除する必要があります。
OpenShift CLI (oc
) を使用してこのオブジェクトを削除できます。
前提条件
-
oc
がインストールされている。 -
cluster-admin
権限を持つユーザーとしてoc
にログインしている。
手順
-
OpenShift CLI (
oc
) にログインします。 次のコマンドを実行して
ClusterPodPlacementConfig
オブジェクトを削除します。$ oc delete clusterpodplacementconfig cluster
検証
ClusterPodPlacementConfig
オブジェクトが削除されたことを確認するには、次のコマンドを実行します。$ oc get clusterpodplacementconfig
出力例
No resources found
4.11.6. Web コンソールを使用した ClusterPodPlacementConfig オブジェクトの削除
ClusterPodPlacementConfig
オブジェクトのインスタンスは 1 つだけ作成できます。このオブジェクトを再作成する場合は、まず既存のインスタンスを削除する必要があります。
OpenShift Container Platform Web コンソールを使用してこのオブジェクトを削除できます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
-
ClusterPodPlacementConfig
オブジェクトを作成した。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
Installed Operators に移動します。 - Installed Operators ページで、Multiarch Tuning Operator をクリックします。
- Cluster Pod Placement Config タブをクリックします。
- オプションメニューから Delete ClusterPodPlacementConfig を選択します。
- Delete をクリックします。
検証
-
Cluster Pod Placement Config ページで、
ClusterPodPlacementConfig
オブジェクトが削除されていることを確認します。
4.11.7. CLI を使用した Multiarch Tuning Operator のアンインストール
OpenShift CLI (oc
) を使用して、Multiarch Tuning Operator をアンインストールできます。
前提条件
-
oc
がインストールされている。 -
cluster-admin
権限を持つユーザーとしてoc
にログインしている。 ClusterPodPlacementConfig
オブジェクトを削除した。重要Multiarch Tuning Operator をアンインストールする前に、
ClusterPodPlacementConfig
オブジェクトを削除する必要があります。ClusterPodPlacementConfig
オブジェクトを削除せずに Operator をアンインストールすると、予期しない動作が発生する可能性があります。
手順
次のコマンドを実行して、Multiarch Tuning Operator の
Subscription
オブジェクト名を取得します。$ oc get subscription.operators.coreos.com -n <namespace> 1
- 1
<namespace>
は、Multiarch Tuning Operator をアンインストールする namespace の名前に置き換えます。
出力例
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 をアンインストールする namespace の名前に置き換えます。
出力例
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 をアンインストールする namespace の名前に置き換えます。
出力例
subscription.operators.coreos.com "openshift-multiarch-tuning-operator" deleted
次のコマンドを実行して、
currentCSV
値を使用してターゲット namespace 内の 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 をアンインストールする namespace の名前に置き換えます。
出力例
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 をアンインストールした namespace の名前に置き換えます。
出力例
No resources found in openshift-multiarch-tuning-operator namespace.
4.11.8. Web コンソールを使用した Multiarch Tuning Operator のアンインストール
OpenShift Container Platform Web コンソールを使用して、Multiarch Tuning Operator をアンインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできます。 ClusterPodPlacementConfig
オブジェクトを削除した。重要Multiarch Tuning Operator をアンインストールする前に、
ClusterPodPlacementConfig
オブジェクトを削除する必要があります。ClusterPodPlacementConfig
オブジェクトを削除せずに Operator をアンインストールすると、予期しない動作が発生する可能性があります。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
OperatorHub に移動します。 - 検索フィールドに Multiarch Tuning Operator と入力します。
- Multiarch Tuning Operator をクリックします。
- Details タブをクリックします。
- Actions メニューから、Uninstall Operator を選択します。
- プロンプトが表示されたら、Uninstall をクリックします。
検証
-
Operators
Installed Operators に移動します。 - Installed Operator ページで、Multiarch Tuning Operator がリストされていないことを確認します。