3.11. Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する
Multiarch Tuning Operator は、マルチアーキテクチャークラスター内およびマルチアーキテクチャー環境に移行するシングルアーキテクチャークラスター内のワークロード管理を最適化します。
アーキテクチャーを考慮したワークロードスケジューリングにより、スケジューラーは Pod イメージのアーキテクチャーに一致するノードに Pod を配置できます。
スケジューラーは、新しい Pod のノードへの配置を決定する際に、デフォルトでは Pod のコンテナーイメージのアーキテクチャーを考慮しません。
アーキテクチャーを考慮したワークロードのスケジューリングを有効にするには、ClusterPodPlacementConfig オブジェクトを作成する必要があります。ClusterPodPlacementConfig オブジェクトを作成すると、Multiarch Tuning Operator は、アーキテクチャーを考慮したワークロードスケジューリングをサポートするために必要なオペランドをデプロイします。ClusterPodPlacementConfig オブジェクトの nodeAffinityScoring プラグインを使用して、ノードアーキテクチャーのクラスター全体のスコアを設定することもできます。nodeAffinityScoring プラグインを有効にすると、スケジューラーによって、互換性のあるアーキテクチャーを持つノードがフィルタリングされてから、スコアが最も高いノードに Pod が配置されます。
名前空間レベルでは、PodPlacementConfig オブジェクトで celArchitecturePlacement プラグインを使用して、Pod メタデータを評価する共通式言語 (CEL) 式に基づいて、ワークロードを特定のアーキテクチャーに配置できます。
Pod が作成されると、オペランドは次のアクションを実行します。
-
Pod のスケジュールを防止するスケジューリングゲート
multiarch.openshift.io/scheduling-gateを追加します。 -
kubernetes.io/archラベルでサポートされているアーキテクチャー値を含むスケジューリング述語を計算します。 -
スケジューリング述語を Pod 仕様の
nodeAffinity要件として統合します。 - Pod からスケジューリングゲートを削除します。
CEL 配置またはイメージベースのアーキテクチャー検出の前に、以下の除外事項が適用されます。
-
Operator は、
spec.nodeNameがすでに設定されている Pod と、DaemonSet が所有する Pod を無視します。 -
Operator は、自身の名前空間内の Pod、
kube-プレフィックスを持つ名前空間内の Pod、およびコントロールプレーンノードセレクターを持つ Pod を無視します。 -
Pod に
kubernetes.io/archノードセレクター、または必要なノードアフィニティーのすべての用語にアーキテクチャー制約があり、かつアーキテクチャーベースの優先ノードアフィニティーがある場合、Operator はその Pod を無視します。この組み合わせにより、CEL が既存のアーキテクチャー上の制約を上書きすることを防ぎます。
その他の条件を満たす Pod については、CEL はアーキテクチャーセレクターと必須ノードアフィニティーを置き換えつつ、優先ノードアフィニティーを維持することができます。Pod にすでにアーキテクチャーベースの優先ノードアフィニティーが設定されている場合、Operator は CEL 配置ではなく、nodeAffinityScoring をスキップします。
イメージベースのアーキテクチャー検出において、Operator は既存のアーキテクチャーセレクターと必要なアフィニティー制約を保持します。一致する名前空間スコープの配置プラグインもクラスター全体の nodeAffinityScoring も処理を必要としない場合、既存のアーキテクチャー制約を持つ Pod は処理されません。
Operator をインストールする前に、既存のネットワークポリシーによって、Operator の Pod が Kubernetes API サーバーにアクセスできることを確認してください。送信側分離によってそのアクセスがブロックされる場合は、インストール前に必要な許可ポリシーを設定して、Operator が管理対象のネットワークポリシーを作成できるようにしてください。Ingress のみのデフォルト拒否ポリシーでは、この Egress をブロックしません。
3.11.1. CLI を使用した Multiarch Tuning Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して、Multiarch Tuning Operator をインストールできます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてocにログインしている。
手順
次のコマンドを実行して、
openshift-multiarch-tuning-operatorという名前の新しいプロジェクトを作成します。$ oc create ns openshift-multiarch-tuning-operatorOperatorGroupオブジェクトを作成します。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><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.<version>以下のコマンドを実行して
Subscriptionオブジェクトを作成します。$ oc create -f <file_name><file_name>は、Subscriptionオブジェクトの設定を含む YAML ファイルの名前に置き換えます。注記SubscriptionオブジェクトとOperatorGroupオブジェクトの設定の詳細は、「CLI を使用してソフトウェアカタログからインストールする」を参照してください。
検証
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 SucceededOperator が
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