4.11. Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する
Multiarch Tuning Operator はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat では、実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Multiarch Tuning Operator は、マルチアーキテクチャークラスター、およびマルチアーキテクチャーコンピュート設定に移行中のシングルアーキテクチャークラスターにおける運用エクスペリエンスを強化します。
この Operator は、アーキテクチャーを考慮したワークロードのスケジューリングをサポートするために、clusterpodplacementconfigs
カスタムリソース (CR) を実装します。
アーキテクチャーを考慮したワークロードのスケジューリングを有効にするには、ClusterPodPlacementConfig
オブジェクトを作成する必要があります。ClusterPodPlacementConfig
オブジェクトを作成すると、この Operator がオペランドをデプロイします。
Pod が作成されると、オペランドは次のアクションを実行します。
-
Pod のスケジュールを防止するスケジューリングゲート
multiarch.openshift.io/scheduling-gate
を追加します。 -
kubernetes.io/arch
ラベルでサポートされているアーキテクチャー値を含むスケジューリング述語を計算します。 -
スケジューリング述語を Pod 仕様の
nodeAffinity
要件として統合します。 - Pod からスケジューリングゲートを削除します。
オペランドがスケジューリングゲートを削除すると、Pod はスケジューリングサイクルに入ります。次に、サポートされているアーキテクチャーに基づいて、ノード上でワークロードがスケジュールされます。
テクノロジープレビューバージョンの Multiarch Tuning Operator は、ネットワークが制限された環境のクラスターをサポートしていません。
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: tech-preview name: multiarch-tuning-operator source: redhat-operators sourceNamespace: openshift-marketplace installPlanApproval: Automatic startingCSV: multiarch-tuning-operator.v0.9.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.v0.9.0 Multiarch Tuning Operator 0.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 multiarch-tuning-operator-catalog tech-preview
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 を tech-preview に設定します。
- 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. 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
のみを処理します。
openshift-
、kube-
、hypershift-
で始まる namespace は除外されます。
4.11.3.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.3.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.4. 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
次のステップ
ClusterPodPlacementConfig
オブジェクトを削除したら、SchedulingGated
が原因で Pod がPending
フェーズになっていないことを確認します。次のコマンドを実行すると、ゲートが設定されたすべての Pod からスケジューリングゲートを削除できます。$ oc get pods -A -l multiarch.openshift.io/scheduling-gate=gated -o json | jq 'del(.items[].spec.schedulingGates[] | select(.name=="multiarch.openshift.io/scheduling-gate"))' | oc apply -f -
4.11.5. 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
オブジェクトが削除されていることを確認します。
次のステップ
ClusterPodPlacementConfig
オブジェクトを削除したら、SchedulingGated
が原因で Pod がPending
フェーズになっていないことを確認します。OpenShift CLI (oc
) で次のコマンドを実行すると、ゲートが設定されたすべての Pod からスケジューリングゲートを削除できます。$ oc get pods -A -l multiarch.openshift.io/scheduling-gate=gated -o json | jq 'del(.items[].spec.schedulingGates[] | select(.name=="multiarch.openshift.io/scheduling-gate"))' | oc apply -f -
4.11.6. 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 tech-preview
次のコマンドを実行して、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.v0.9.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.v0.9.0
です。<namespace>
は、Multiarch Tuning Operator をアンインストールする namespace の名前に置き換えます。
出力例
clusterserviceversion.operators.coreos.com "multiarch-tuning-operator.v0.9.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.7. 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 がリストされていないことを確認します。