5.9.2. Pod の sysctl 設定
Pod の securityContext
を使用して sysctl を Pod に設定できます。securityContext
は同じ Pod 内のすべてのコンテナーに適用されます。
安全な sysctl はデフォルトで許可されます。安全でない sysctl が設定された Pod は、クラスター管理者がそのノードの安全でない sysctl を明示的に有効にしない限り、いずれのノードでも起動に失敗します。ノードレベルの sysctl の場合のように、それらの Pod を正しいノードにスケジュールするには、テイントおよび容認 (Toleration)、またはノードのラベルを使用します。
以下の例では Pod の securityContext
を使用して安全な sysctl kernel.shm_rmid_forced
および 2 つの安全でない sysctl net.core.somaxconn
および kernel.msgmax
を設定します。仕様では 安全な sysctl と 安全でない sysctl は区別されません。
オペレーティングシステムが不安定になるのを防ぐには、変更の影響を確認している場合にのみ sysctl パラメーターを変更します。
手順
安全なおよび安全でない sysctl を使用するには、以下を実行します。
以下の例に示されるように、Pod を定義する YAML ファイルを変更し、
securityContext
仕様を追加します。apiVersion: v1 kind: Pod metadata: name: sysctl-example spec: securityContext: sysctls: - name: kernel.shm_rmid_forced value: "0" - name: net.core.somaxconn value: "1024" - name: kernel.msgmax value: "65536" ...
Pod を作成します。
$ oc apply -f <file-name>.yaml
安全でない sysctl がノードに許可されていない場合、Pod はスケジュールされますが、デプロイはされません。
$ oc get pod
出力例
NAME READY STATUS RESTARTS AGE hello-pod 0/1 SysctlForbidden 0 14s