33.5. 安全でない sysctl の有効化
クラスター管理者は、高パフォーマンスまたはリアルタイムのアプリケーション調整などの非常に特殊な状況で特定の安全でない sysctl を許可することができます。
安全でない sysctl を使用する必要がある場合、クラスター管理者はそれらをノードで個別に有効にする必要があります。それらは namespace を使用した sysctl のみを有効にできます。
SCC (Security Context Constraints) の forbiddenSysctls
および allowedUnsafeSysctls
フィールドに sysctl または sysctl パターンの一覧を指定して、Pod に設定できる sysctl をさらに制御できます。
-
forbiddenSysctls
オプションは、特定の sysctl を除外します。 -
allowedUnsafeSysctls
オプションは、高パフォーマンスやリアルタイムのアプリケーションチューニングなどの特定ニーズを管理します。
安全でないという性質上、安全でない sysctl は各自の責任で使用されます。場合によっては、コンテナーの正しくない動作やリソース不足、またはノードの完全な破損などの深刻な問題が生じる可能性があります。
ノードリソースの設定 で説明されているように、安全でない sysctl を適切な ノード設定マップ ファイルの
kubeletArguments
パラメーターに追加します。以下に例を示します。
$ oc edit cm node-config-compute -n openshift-node ... kubeletArguments: allowed-unsafe-sysctls: 1 - "net.ipv4.tcp_keepalive_time" - "net.ipv4.tcp_keepalive_intvl" - "net.ipv4.tcp_keepalive_probes"
- 1
- 使用する安全でない sysctl を追加します。
制限付き SCC の内容を使用し、安全でない sysctl を追加する新規 SCC を作成します。
... allowHostDirVolumePlugin: false allowHostIPC: false allowHostNetwork: false allowHostPID: false allowHostPorts: false allowPrivilegeEscalation: true allowPrivilegedContainer: false allowedCapabilities: null allowedUnsafeSysctls: 1 - net.ipv4.tcp_keepalive_time - net.ipv4.tcp_keepalive_intvl - net.ipv4.tcp_keepalive_probes ... metadata: name: restricted-sysctls 2 ...
新規 SCC アクセスを Pod ServiceAccount に付与します。
$ oc adm policy add-scc-to-user restricted-sysctls -z default -n your_project_name
安全でない sysctl を Pod の DeploymentConfig に追加します。
kind: DeploymentConfig ... template: ... spec: containers: ... securityContext: sysctls: - name: net.ipv4.tcp_keepalive_time value: "300" - name: net.ipv4.tcp_keepalive_intvl value: "20" - name: net.ipv4.tcp_keepalive_probes value: "3"
変更を適用するためにノードサービスを再起動します。
# systemctl restart atomic-openshift-node