7.9.6. 安全な sysctl での Pod の起動
pod 仕様の securityContext パラメーターに sysctls パラメーターを追加することで、pod 内のすべてのコンテナーのカーネルパラメーターを変更できます。
安全な sysctl はデフォルトで許可されます。
この例では、Pod securityContext を使用して以下の安全な sysctl を設定します。
-
kernel.shm_rmid_forced -
net.ipv4.ip_local_port_range -
net.ipv4.tcp_syncookies -
net.ipv4.ping_group_range
オペレーティングシステムが不安定になるのを防ぐには、変更の影響を確認している場合にのみ sysctl パラメーターを変更します。
以下の手順では、設定済みの sysctl 設定を使用して Pod を起動する方法を示します。
ほとんどの場合、既存の Pod 定義を変更し、securityContext 仕様を追加します。
手順
以下の例のように、サンプル Pod を定義し、
securityContext仕様を追加する YAML ファイルのsysctl_pod.yamlを作成します。apiVersion: v1 kind: Pod metadata: name: sysctl-example namespace: default 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: "1" - name: net.ipv4.ip_local_port_range value: "32770 60666" - name: net.ipv4.tcp_syncookies value: "0" - name: net.ipv4.ping_group_range value: "0 200000000"各項目の説明:
spec.containers.securityContext.runAsUser- コンテナーを実行するユーザー ID を指定します。
spec.containers.securityContext.runAsGroup- コンテナーの実行に使用するプライマリーグループ ID を指定します。
spec.containers.securityContext.allowPrivilegeEscalation-
Pod が特権昇格を要求できるかどうかを指定します。デフォルトは
trueです。このブール値は、no_new_privsフラグがコンテナープロセスに設定されるかどうかを直接制御します。 spec.containers.securityContext.capabilities- 完全なルートアクセス権限を与えずに、許可される特権アクションを指定します。このポリシーにより、すべての機能が Pod から削除されます。
spec.securityContext.runAsNonRoot: true- コンテナーが、UID が 0 以外の任意のユーザーで実行されることを指定します。
spec.securityContext.seccompProfile.type: RuntimeDefault- Pod またはコンテナーのワークロードに対して、デフォルトの seccomp プロファイルが有効になっていることを指定します。
以下のコマンドを実行して Pod を作成します。
$ oc apply -f sysctl_pod.yaml
検証
以下のコマンドを実行して、Pod が作成されていることを確認します。
$ oc get pod出力例
NAME READY STATUS RESTARTS AGE sysctl-example 1/1 Running 0 14s次のコマンドを実行して、Pod にログインします。
$ oc rsh sysctl-example設定された sysctl フラグの値を確認します。たとえば、以下のコマンドを実行して
kernel.shm_rmid_forcedの値を見つけます。sh-4.4# sysctl kernel.shm_rmid_forced予想される出力
kernel.shm_rmid_forced = 1