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 仕様を追加します。

手順

  1. 以下の例のように、サンプル 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 プロファイルが有効になっていることを指定します。
  2. 以下のコマンドを実行して Pod を作成します。

    $ oc apply -f sysctl_pod.yaml

検証

  1. 以下のコマンドを実行して、Pod が作成されていることを確認します。

    $ oc get pod

    出力例

    NAME              READY   STATUS            RESTARTS   AGE
    sysctl-example    1/1     Running           0          14s

  2. 次のコマンドを実行して、Pod にログインします。

    $ oc rsh sysctl-example
  3. 設定された sysctl フラグの値を確認します。たとえば、以下のコマンドを実行して kernel.shm_rmid_forced の値を見つけます。

    sh-4.4# sysctl kernel.shm_rmid_forced

    予想される出力

    kernel.shm_rmid_forced = 1

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る