4.11. Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する


Multiarch Tuning Operator は、マルチアーキテクチャークラスター内およびマルチアーキテクチャー環境に移行するシングルアーキテクチャークラスター内のワークロード管理を最適化します。

アーキテクチャーを考慮したワークロードスケジューリングにより、スケジューラーは Pod イメージのアーキテクチャーに一致するノードに Pod を配置できます。

スケジューラーは、新しい Pod のノードへの配置を決定する際に、デフォルトでは Pod のコンテナーイメージのアーキテクチャーを考慮しません。

アーキテクチャーを考慮したワークロードのスケジューリングを有効にするには、ClusterPodPlacementConfig オブジェクトを作成する必要があります。ClusterPodPlacementConfig オブジェクトを作成すると、Multiarch Tuning Operator は、アーキテクチャーを考慮したワークロードスケジューリングをサポートするために必要なオペランドをデプロイします。

Pod が作成されると、オペランドは次のアクションを実行します。

  1. Pod のスケジュールを防止するスケジューリングゲート multiarch.openshift.io/scheduling-gate を追加します。
  2. kubernetes.io/arch ラベルでサポートされているアーキテクチャー値を含むスケジューリング述語を計算します。
  3. スケジューリング述語を Pod 仕様の nodeAffinity 要件として統合します。
  4. 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 にログインしている。

手順

  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.v1.0.0

    2. 以下のコマンドを実行して Subscription オブジェクトを作成します。

      $ oc create -f <file_name> 1
      1
      <file_name> は、Subscription オブジェクトの設定を含む YAML ファイルの名前に置き換えます。
注記

Subscription オブジェクトと OperatorGroup オブジェクトの設定の詳細は、「CLI を使用した OperatorHub からのインストール」を参照してください。

検証

  1. 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 フェーズにある場合、インストールは成功しています。

  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

4.11.2. Web コンソールを使用した Multiarch Tuning Operator のインストール

OpenShift Container Platform Web コンソールを使用して、Multiarch Tuning Operator をインストールできます。

前提条件

  • cluster-admin 権限でクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにアクセスできる。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Operators OperatorHub に移動します。
  3. 検索フィールドに Multiarch Tuning Operator と入力します。
  4. Multiarch Tuning Operator をクリックします。
  5. Version リストから Multiarch Tuning Operator のバージョンを選択します。
  6. Install をクリックします。
  7. Operator Installation ページで次のオプションを設定します。

    1. Update Channelstable に設定します。
    2. Installation ModeAll namespaces on the cluster に設定します。
    3. Installed Namespace を、Operator recommended NamespaceSelect a Namespace に設定します。

      推奨される Operator namespace は openshift-multiarch-tuning-operator です。openshift-multiarch-tuning- operator namespace が存在しない場合は、Operator のインストール中に作成されます。

      Select a namespace を選択した場合は、Select Project リストから Operator の namespace を選択する必要があります。

    4. Update approvalAutomatic または Manual を選択します。

      Automatic 更新を選択すると、Operator Lifecycle Manager (OLM) が管理者の介入なしで Multiarch Tuning Operator の実行中のインスタンスを自動的に更新します。

      Manual 更新を選択すると、OLM は更新要求を作成します。クラスター管理者は、Multiarch Tuning Operator を新しいバージョンに更新するために、更新要求を手動で承認する必要があります。

  8. オプション: Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
  9. Install をクリックします。

検証

  1. Operators Installed Operators に移動します。
  2. 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 が追加するラベルを説明しています。

表4.2 Pod 作成時に Multiarch Tuning Operator が追加する Pod ラベル
ラベル説明

multiarch.openshift.io/multi-arch: ""

Pod は複数のアーキテクチャーをサポートします。

multiarch.openshift.io/single-arch: ""

Pod は単一のアーキテクチャーのみサポートします。

multiarch.openshift.io/arm64: ""

Pod は arm64 アーキテクチャーをサポートします。

multiarch.openshift.io/amd64: ""

Pod は amd64 アーキテクチャーをサポートします。

multiarch.openshift.io/ppc64le: ""

Pod は ppc64le アーキテクチャーをサポートします。

multiarch.openshift.io/s390x: ""

Pod は s390x アーキテクチャーをサポートします。

multirach.openshift.io/node-affinity: set

Operator は、アーキテクチャーのノードアフィニティー要件を設定しました。

multirach.openshift.io/node-affinity: not-set

Operator はノードアフィニティー要件を設定しませんでした。たとえば、Pod にすでにアーキテクチャーのノードアフィニティーがある場合、Multiarch Tuning Operator はこのラベルを Pod に追加します。

multiarch.openshift.io/scheduling-gate: gated

Pod にはゲートがあります。

multiarch.openshift.io/scheduling-gate: removed

Pod ゲートが削除されました。

multiarch.openshift.io/inspection-error: ""

ノードアフィニティー要件のビルド時にエラーが発生しました。

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

1
このフィールドの値を cluster に設定する必要があります。
2
オプション: フィールドの値を NormalDebugTrace、または TraceAll に設定できます。デフォルトでは、値は Normal に設定されています。
3
オプション: namespaceSelector を設定すると、Multiarch Tuning Operator の Pod 配置オペランドによって Pod の nodeAffinity を処理する必要がある namespace を選択できます。デフォルトではすべての namespace が考慮されます。

この例では、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 がインストールされている。

手順

  1. 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

  2. 次のコマンドを実行して 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 がインストールされている。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Operators Installed Operators に移動します。
  3. Installed Operators ページで、Multiarch Tuning Operator をクリックします。
  4. Cluster Pod Placement Config タブをクリックします。
  5. Form view または YAML view のいずれかを選択します。
  6. ClusterPodPlacementConfig オブジェクトのパラメーターを設定します。
  7. Create をクリックします。
  8. オプション: ClusterPodPlacementConfig オブジェクトを編集する場合は、次の操作を実行します。

    1. Cluster Pod Placement Config タブをクリックします。
    2. オプションメニューから Edit ClusterPodPlacementConfig を選択します。
    3. YAML をクリックし、ClusterPodPlacementConfig オブジェクトのパラメーターを編集します。
    4. Save をクリックします。

検証

  • Cluster Pod Placement Config ページで、ClusterPodPlacementConfig オブジェクトが Ready 状態であることを確認します。

4.11.5. CLI を使用した ClusterPodPlacementConfig オブジェクトの削除

ClusterPodPlacementConfig オブジェクトのインスタンスは 1 つだけ作成できます。このオブジェクトを再作成する場合は、まず既存のインスタンスを削除する必要があります。

OpenShift CLI (oc) を使用してこのオブジェクトを削除できます。

前提条件

  • oc がインストールされている。
  • cluster-admin 権限を持つユーザーとして oc にログインしている。

手順

  1. OpenShift CLI (oc) にログインします。
  2. 次のコマンドを実行して 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 オブジェクトを作成した。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Operators Installed Operators に移動します。
  3. Installed Operators ページで、Multiarch Tuning Operator をクリックします。
  4. Cluster Pod Placement Config タブをクリックします。
  5. オプションメニューから Delete ClusterPodPlacementConfig を選択します。
  6. 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 をアンインストールすると、予期しない動作が発生する可能性があります。

手順

  1. 次のコマンドを実行して、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

  2. 次のコマンドを実行して、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

  3. 次のコマンドを実行して、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

  4. 次のコマンドを実行して、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 をアンインストールすると、予期しない動作が発生する可能性があります。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. Operators OperatorHub に移動します。
  3. 検索フィールドに Multiarch Tuning Operator と入力します。
  4. Multiarch Tuning Operator をクリックします。
  5. Details タブをクリックします。
  6. Actions メニューから、Uninstall Operator を選択します。
  7. プロンプトが表示されたら、Uninstall をクリックします。

検証

  1. Operators Installed Operators に移動します。
  2. Installed Operator ページで、Multiarch Tuning Operator がリストされていないことを確認します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.