第15章 ワークロードの分割

重要

ワークロードの分割はテクノロジープレビュー機能としてのみ使用できます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

リソースに制約のある環境では、ワークロードの分割を使用して、OpenShift Container Platform サービス、クラスター管理ワークロード、インフラストラクチャー Pod を分離し、予約済みの CPU セットで実行できます。

クラスター管理に必要な予約済み CPU の最小数は、4 つの CPU ハイパースレッド (HT) です。ワークロード分割では、クラスター管理ワークロードパーティションに含めるために、一連のクラスター管理 Pod と一連の一般的なアドオン Operator に注釈を付けます。これらの Pod は、最低限のサイズの CPU 設定内で正常に動作します。最小クラスター管理 Pod のセット外の追加の Operator またはワークロードでは、追加の CPU をワークロードパーティションに追加する必要があります。

ワークロード分割は、標準の Kubernetes スケジューリング機能を使用して、ユーザーワークロードをプラットフォームワークロードから分離します。

ワークロードの分割には次の変更が必要です。

  1. install-config.yaml ファイルに、cpuPartitioningMode を追加フィールドとして追加します。

    apiVersion: v1
    baseDomain: devcluster.openshift.com
    cpuPartitioningMode: AllNodes 1
    compute:
      - architecture: amd64
        hyperthreading: Enabled
        name: worker
        platform: {}
        replicas: 3
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      platform: {}
      replicas: 3
    1
    インストール時に CPU のパーティション設定用クラスターをセットアップします。デフォルト値は None です。
    注記

    ワークロードの分割は、クラスターのインストール中にのみ有効にできます。インストール後にワークロードパーティショニングを無効にすることはできません。

  2. パフォーマンスプロファイルで、isolated および reserved CPU を指定します。

    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
      name: openshift-node-workload-partitioning-worker
    spec:
      cpu:
        isolated: 0,1 1
        reserved: "2-3" 2
      machineConfigPoolSelector:
        pools.operator.machineconfiguration.openshift.io/worker: ""
      nodeSelector:
        node-role.kubernetes.io/worker: ""
    1
    隔離された CPU を設定します。すべてのハイパースレッディングペアが一致していることを確認します。
    2
    ワークロードと OpenShift Container Platform インフラストラクチャー Pod を固定する CPU セットを指定します。ワークロードの分割が有効になっている場合、systemdCRI-OKubelet などのプラットフォームコンテナーとプラットフォームサービスは、指定した CPU に制限されます。分離されていないすべての CPU を予約する必要があります。

ワークロードの分割により、プラットフォーム Pod に拡張された Management.workload.openshift.io/cores リソースタイプが導入されます。Kubelet は、対応するリソース内のプールに割り当てられた Pod によって、リソースと CPU 要求をアドバタイズします。ワークロードの分割が有効になっている場合、スケジューラーは management.workload.openshift.io/cores リソースにより、デフォルトの cpuset だけでなく、ホストの cpushares 容量に基づいて Pod を適切に割り当てることができます。

関連情報