3.6. fsGroup を使用して Pod のタイムアウトを減らす


ストレージボリュームに多数のファイル (たとえば、100 万以上) が含まれている場合、Pod のタイムアウトが発生する可能性があります。

これは、デフォルトで、Red Hat OpenShift Service on AWS が各ボリュームのコンテンツの所有権と権限を再帰的に変更して、そのボリュームがマウントされたときに Pod の securityContext で指定された fsGroup に一致させるために発生する可能性があります。多くのファイルが含まれるボリュームの場合、所有権と権限の確認と変更に時間がかかり、Pod の起動が遅くなる可能性があります。securityContext 内の fsGroupChangePolicy フィールドを使用して、Red Hat OpenShift Service on AWS がボリュームの所有権と権限をチェックおよび管理する方法を制御できます。

fsGroupChangePolicy は、Pod 内で公開される前にボリュームの所有者およびパーミッションを変更する動作を定義します。このフィールドは、fsGroup によって制御される所有権と権限をサポートするボリュームタイプにのみ適用されます。このフィールドには、以下の 2 つの値を指定できます。

  • OnRootMismatch: ルートディレクトリーのパーミッションと所有者が、ボリュームの予想されるパーミッションと一致しない場合にのみ、パーミッションと所有者を変更します。これにより、ボリュームの所有者とパーミッションを変更するのに必要な時間を短縮でき、Pod のタイムアウトを減らすことができます。
  • Always: (デフォルト) ボリュームのマウント時に、常にボリュームのパーミッションと所有者を変更します。
注記

fsGroupChangePolicy は、secret、configMap、emptydir などの一時ボリュームタイプには影響を及ぼしません。

fsGroupChangePolicy は、namespace レベルまたは Pod レベルで設定できます。

3.6.1. namespace レベルで fsGroup を変更する

任意の fsGroupChangePolicy 設定を namespace レベルで適用すると、その後その namespace に作成されるすべての Pod に、その設定が継承されます。ただし、個々の Pod に継承された fsGroupChangePolicy 設定は、必要に応じてオーバーライドできます。Pod レベルで fsGroupChangePolicy を設定すると、その Pod に継承された namespace レベルの設定がオーバーライドされます。

前提条件

  • 管理者特権で Red Hat OpenShift Service on AWS クラスターにログインした。
  • Red Hat OpenShift Service on AWS にアクセスできる。

手順

namespace ごとに fsGroupChangePolicy を設定するには、以下を実行します。

  1. 任意の namespace を選択します。

    1. Administration > Namespaces をクリックします。
    2. Namespaces ページで、任意の namespace をクリックします。Namespace details ページが表示されます。
  2. fsGroupChangePolicy ラベルを namespace に追加します。

    1. Namespace details ページで、Labels の横にある Edit をクリックします。
    2. Edit labels ダイアログで、storage.openshift.io/fsgroup-change-policy ラベルを追加し、次のいずれかと同じ設定にします。

      • OnRootMismatch: ルートディレクトリーの権限と所有権が、ボリュームの予期される権限と一致しない場合にのみ、権限と所有権を変更することを指定します。これは、Pod のタイムアウト問題を回避するために役立ちます。
      • Always: (デフォルト) ボリュームがマウントされるたびに、ボリュームの権限と所有権を必ず変更することを指定します。
    3. Save をクリックします。

検証

以前に編集した namespace で Pod を起動し、namespace に設定した値が spec.securityContext.fsGroupChangePolicy パラメーターに含まれていることを確認します。

fsGroupChangePolicy 設定を示す Pod YAML ファイルの例

securityContext:
  seLinuxOptions:
    level: 's0:c27,c24'
  runAsNonRoot: true
  fsGroup: 1000750000
  fsGroupChangePolicy: OnRootMismatch 
1

  ...
Copy to Clipboard Toggle word wrap

1
この値は namespace から継承されます。

3.6.2. Pod レベルで fsGroup を変更する

新規または既存のデプロイメントで fsGroupChangePolicy パラメーターを設定すると、管理する Pod にこのパラメーター値が適用されます。同様に、Statefulset でもこれを行うことができます。既存の Pod を編集して fsGroupChangePolicy を設定することはできませんが、新しい Pod を作成するときにこのパラメーターを設定することはできます。

この手順では、既存のデプロイメントで fsGroupChangePolicy パラメーターを設定する方法について説明します。

前提条件

  • Red Hat OpenShift Service on AWS にアクセスできる。

手順

既存のデプロイメントで fsGroupChangePolicy パラメーターを設定するには、以下を実行します。

  1. Workloads > Deployments をクリックします。
  2. Deployment ページで、任意のデプロイメントをクリックします。
  3. Deployment details ページで、YAML タブをクリックします。
  4. 次のサンプルファイルを使用して、spec.template.spec.securityContext の下にあるデプロイメントの YAML ファイルを編集します。

    fsGroupChangePolicy を設定するデプロイメント YAML ファイルの例

    ...
    spec:
    replicas: 3
    selector:
    matchLabels:
    app: my-app
    template:
    metadata:
    creationTimestamp: null
    labels:
    app: my-app
    spec:
    containers:
    - name: container
    image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest'
    ports:
    - containerPort: 8080
    protocol: TCP
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    imagePullPolicy: Always
    restartPolicy: Always
    terminationGracePeriodSeconds: 30
    dnsPolicy: ClusterFirst
    securityContext:
      fsGroupChangePolicy: OnRootMismatch 
    1
    
    ...
    Copy to Clipboard Toggle word wrap

    1
    OnRootMismatch は、再帰的なパーミッション変更をスキップさせるため、Pod のタイムアウトの問題を回避するのに役立ちます。デフォルト値は Always です。ボリュームがマウントされるたびに必ずボリュームの権限と所有権が変更されます。
  5. Save をクリックします。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat