7.9.7. 安全でない sysctl での Pod の起動
クラスター管理者が明示的に安全でない sysctl を有効にしたノード上で、安全でない sysctl を使用するように設定された Pod を実行できます。高性能アプリケーションやリアルタイムアプリケーションのチューニングなど、特定の状況では、安全でない sysctl を使用する場合があります。
taint と toleration 機能、またはノード上のラベルを使用して、それらの Pod を適切なノードにスケジュールできます。
以下の例では Pod の securityContext を使用して安全な sysctl kernel.shm_rmid_forced および 2 つの安全でない sysctl net.core.somaxconn および kernel.msgmax を設定します。仕様では 安全な sysctl と 安全でない sysctl は区別されません。
オペレーティングシステムが不安定になるのを防ぐには、変更の影響を確認している場合にのみ sysctl パラメーターを変更します。
以下の例は、安全な sysctl を Pod 仕様に追加する際に発生する内容を示しています。
手順
以下の例のように、サンプル Pod を定義し、
securityContext仕様を追加する YAML ファイルsysctl-example-unsafe.yamlを作成します。apiVersion: v1 kind: Pod metadata: name: sysctl-example-unsafe spec: containers: - name: podexample image: centos command: ["bin/bash", "-c", "sleep INF"] securityContext: runAsUser: 2000 runAsGroup: 3000 allowPrivilegeEscalation: false capabilities: drop: ["ALL"] securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault sysctls: - name: kernel.shm_rmid_forced value: "0" - name: net.core.somaxconn value: "1024" - name: kernel.msgmax value: "65536"以下のコマンドを使用して Pod を作成します。
$ oc apply -f sysctl-example-unsafe.yaml以下のコマンドを使用して安全でない sysctl がノードに許可されないため、Pod がスケジュールされているがデプロイされないことを確認します。
$ oc get pod出力例
NAME READY STATUS RESTARTS AGE sysctl-example-unsafe 0/1 SysctlForbidden 0 14s