3.6. fsGroup を使用した Pod タイムアウトの削減
ストレージボリュームに多数のファイル (~1,000,000 以上) が含まれる場合には、Pod のタイムアウトが生じる可能性があります。
デフォルトでは、OpenShift Container Platform は、ボリュームがマウントされる際に Pod の securityContext
で指定される fsGroup
に一致するよう、各ボリュームのコンテンツの所有者とパーミッションを再帰的に変更するため、これが発生する可能性があります。大規模なボリュームでは、所有者とパーミッションの確認と変更には時間がかかり、Pod の起動が遅くなる場合があります。securityContext
内で fsGroupChangePolicy
フィールドを使用して、OpenShift Container Platform がボリュームの所有者およびパーミッションを確認し管理する方法を制御できます。
fsGroupChangePolicy
は、Pod 内で公開される前にボリュームの所有者およびパーミッションを変更する動作を定義します。このフィールドは、fsGroup
で制御される所有者およびパーミッションをサポートするボリュームタイプにのみ適用されます。このフィールドには、以下の 2 つの値を指定できます。
-
OnRootMismatch
: ルートディレクトリーのパーミッションと所有者が、ボリュームの予想されるパーミッションと一致しない場合にのみ、パーミッションと所有者を変更します。これにより、ボリュームの所有者とパーミッションを変更するのに必要な時間を短縮でき、Pod のタイムアウトを減らすことができます。 -
Always
: ボリュームのマウント時に、常にボリュームのパーミッションと所有者を変更します。
fsGroupChangePolicy
の例
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
fsGroupChangePolicy: "OnRootMismatch" 1
...
- 1
OnRootMismatch
は、再帰的なパーミッション変更をスキップさせるため、Pod のタイムアウトの問題を回避するのに役立ちます。
fsGroupChangePolicyfield は、secret、configMap、および emptydir などの一時ボリュームタイプには影響を及ぼしません。