6.10. Linux cgroup の設定
OpenShift Container Platform 4.14 以降、OpenShift Container Platform はクラスター内で Linux コントロールグループバージョン 2 (cgroup v2) を使用します。OpenShift Container Platform 4.13 以前で cgroup v1 を使用している場合、OpenShift Container Platform 4.14 以降に移行しても、cgroup 設定はバージョン 2 に自動的に更新されません。OpenShift Container Platform 4.14 以降の新規インストールでは、デフォルトで cgroup v2 が使用されます。ただし、インストール時に Linux コントロールグループバージョン 1 (cgroup v1) を有効にできます。
cgroup v2 は、Linux cgroup API の現行バージョンです。cgroup v2 では、統一された階層、安全なサブツリー委譲、Pressure Stall Information 等の新機能、および強化されたリソース管理および分離など、cgroup v1 に対していくつかの改善が行われています。ただし、cgroup v2 には、cgroup v1 とは異なる CPU、メモリー、および I/O 管理特性があります。したがって、一部のワークロードでは、cgroup v2 を実行するクラスター上のメモリーまたは CPU 使用率にわずかな違いが発生する可能性があります。
必要に応じて、cgroup v1 と cgroup v2 の間で変更できます。OpenShift Container Platform で cgroup v1 を有効にすると、クラスター内のすべての cgroup v2 コントローラーと階層が無効になります。
Telco では、cgroups v2 サポートがないため、低レイテンシー、リアルタイム、および Data Plane Development Kit (DPDK)ワークロードに PerformanceProfile
を使用するクラスターは自動的に cgroups v1 に戻ります。PerformanceProfile
を使用している場合は、cgroup v2 を有効にすることはできません。
前提条件
- OpenShift Container Platform クラスター (バージョン 4.12 以降) が実行中。
- 管理者権限を持つユーザーとしてクラスターにログインしている。
手順
ノードで cgroup v1 を有効にします。
node.config
オブジェクトを編集します。oc edit nodes.config/cluster
$ oc edit nodes.config/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Add
spec.cgroupMode: "v1"
:node.config
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- cgroup v1 を有効にします。
検証
マシン設定をチェックして、新しいマシン設定が追加されたことを確認します。
oc get mc
$ oc get mc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 予想どおり、新しいマシン設定が作成されます。
新しい
kernelArguments
が新しいマシン設定に追加されたことを確認します。oc describe mc <name>
$ oc describe mc <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroup v1 の出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをチェックして、ノードのスケジューリングが無効になっていることを確認します。これは、変更が適用されていることを示しています。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが
Ready
状態に戻ったら、そのノードのデバッグセッションを開始します。oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /host
をデバッグシェル内のルートディレクトリーとして設定します。chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sys/fs/cgroup/cgroup2fs
ファイルがノードに存在することを確認します。このファイルは cgroup v1 によって作成されます。stat -c %T -f /sys/fs/cgroup
$ stat -c %T -f /sys/fs/cgroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
cgroup2fs
cgroup2fs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow