8.2. ワークロードのパーティション分割
ワークロードのパーティション分割は、ノードの CPU リソースを個別の CPU セットに分割します。主な目的は、ユーザーのワークロード用に残りのデバイス CPU リソースを予約するすべてのコントロールプレーンコンポーネントの CPU 使用率を制限することです。
ワークロードのパーティション分割は、予約済みの CPU セットを MicroShift サービス、クラスター管理ワークロード、およびインフラストラクチャー Pod に割り当て、クラスターデプロイメント内の残りの CPU が変更されずに、プラットフォーム以外のワークロード専用になるようにします。
8.2.1. ワークロードのパーティション分割の有効化
MicroShift でワークロードのパーティション分割を有効化するには、次の設定変更を行います。
-
MicroShift
config.yaml
ファイルを更新して、kubelet 設定ファイルを含めます。 - CRI-O systemd および設定ファイルを作成します。
- MicroShift および CRI-O サービスの systemd 設定ファイルをそれぞれ作成および更新します。
手順
MicroShift
config.yaml
ファイルを更新して、kubelet 設定ファイルを含め、ワークロードの CPU マネージャーを有効化して設定します。パス
/etc/kubernetes/openshift-workload-pinning
に kubelet 設定ファイルを作成します。kubelet 設定は、容量および割り当て可能な CPU に基づいてノードリソースを変更するように kubelet に指示します。kubelet 設定の例
# ... { "management": { "cpuset": "0,6,7" 1 } } # ...
- 1
cpuset
は、8 つの VCPU (4 コア) を搭載したマシンに適用され、ドキュメント全体で有効です。
パス
/etc/microshift/config.yaml
内の MicroShift config.yaml ファイルを更新します。MicroShiftconfig.yaml
ファイルに kubelet 設定を埋め込んで、ワークロードの CPU マネージャーを有効化して設定します。MicroShift の
config.yaml
の例# ... kubelet: reservedSystemCPUs: 0,6,7 1 cpuManagerPolicy: static cpuManagerPolicyOptions: full-pcpus-only: "true" 2 cpuManagerReconcilePeriod: 5s # ...
CRI-O systemd および設定ファイルを作成します。
パス
/etc/crio/crio.conf.d/20-microshift-workload-partition.conf
に CRI-O 設定ファイルを作成します。このファイルは、11-microshift-ovn.conf
ファイルにすでに存在するデフォルト設定をオーバーライドします。CRI-O 設定の例
# ... [crio.runtime] infra_ctr_cpuset = "0,6,7" [crio.runtime.workloads.management] activation_annotation = "target.workload.openshift.io/management" annotation_prefix = "resources.workload.openshift.io" resources = { "cpushares" = 0, "cpuset" = "0,6,7" } # ...
パス
/etc/systemd/system/crio.service.d/microshift-cpuaffinity.conf
に CRI-O の systemd ファイルを作成します。CRI-O systemd 設定の例
# ... [Service] CPUAffinity=0,6,7 # ...
MicroShift および CRI-O サービスの
CPUAffinity
値を使用して、systemd 設定ファイルを作成および更新します。パス
/etc/systemd/system/microshift.service.d/microshift-cpuaffinity.conf
に MicroShift サービスの systemd ファイルを作成します。MicroShift は、systemdCPUAffinity
値を使用して固定されます。MicroShift サービスの systemd 設定の例
# ... [Service] CPUAffinity=0,6,7 # ...
パス
/etc/systemd/system/ovs-vswitchd.service.d/microshift-cpuaffinity.conf
の MicroShift ovs-vswitchd systemd ファイルのCPUAffinity
値を更新します。MicroShift ovs-vswitchd systemd 設定の例
# ... [Service] CPUAffinity=0,6,7 # ...
パス
/etc/systemd/system/ovsdb-server.service.d/microshift-cpuaffinity.conf
の MicroShift ovsdb-server systemd ファイルのCPUAffinity
値を更新します。MicroShift ovsdb-server systemd 設定の例
# ... [Service] CPUAffinity=0,6,7 # ...