22.6. ノードの実施
ノードは、Pod が設定された割り当て可能な値に基づいて消費できるリソースの合計量を制限できます。この機能は、Pod がシステムサービス (コンテナーランタイム、ノードエージェントなど) で必要とされる CPU およびメモリーリソースを使用することを防ぎ、ノードの信頼性を大幅に強化します。ノードの信頼性を強化するために、管理者はリソースの使用についてのターゲットに基づいてリソースを確保する必要があります。
ノードは、QoS (Quality of Service) を実施する新規の cgroup 階層を使用してリソースの制約を実施します。すべての Pod は、システムデーモンから切り離された専用の cgroup 階層で起動されます。
ノードの実施を設定するには、適切な ノード設定マップ で、以下のパラメーターを使用します。
例22.2 ノードの cgroup 設定
kubeletArguments: cgroups-per-qos: - "true" 1 cgroup-driver: - "systemd" 2 enforce-node-allocatable: - "pods" 3
- 1
- それぞれの QoS (Quality of Service) の cgroup 階層を有効化または無効化します。cgroups はノードによって管理されます。この設定の変更にはノードの完全なドレイン (解放) が必要になります。ノード割り当て可能リソース制約をノードが実施できるようにするには、このフラグを
true
にする必要があります。デフォルト値はtrue
です。Red Hat では、この値を変更することを推奨していません。 - 2
- cgroup 階層を管理するためにノードによって使用される cgroup ドライバーです。この値はコンテナーランタイムに関連付けられたドライバーに一致する必要があります。有効な値は
systemd
およびcgroupfs
ですが、Red Hat はsystemd
のみをサポートします。 - 3
- ノードがノードのリソース制約を実施するスコープのコンマ区切りの一覧です。デフォルト値は
pods
です。Red Hat はPod
のみをサポートします。
管理者は Guaranteed QoS (Quality of Service) のある Pod と同様にシステムデーモンを処理する必要があります。システムデーモンは、境界となる制御グループ内でバーストする可能性があり、この動作はクラスターのデプロイメントの一部として管理される必要があります。割り当て済みのリソースのノードの設定 セクションで説明されているように、system-reserved
でリソースを指定して、システムデーモンの CPU およびメモリーリソースを予約します。
設定されている cgroup ドライバーを表示するには、以下のコマンドを実行します。
$ systemctl status atomic-openshift-node -l | grep cgroup-driver=
出力には、以下のような応答が含まれます。
--cgroup-driver=systemd
cgroup ドライバーの管理およびトラブルシューティングに関する詳細は、コントロールグループ (Cgroups) の概要 を参照してください。