Kubernetes 1.20: Granular Control of Volume Permission Changes
BRANK

Authors: Hemant Kumar, Red Hat & Christian Huffman, Red Hat Kubernetes 1.20 brings two important beta features, allowing Kubernetes admins and users alike to have more adequate control over how volume permissions are applied when a volume is mounted inside a Pod. Allow users to skip recursive permission changes on mount Traditionally if your pod is running as a non-root user (which you should), you must specify a fsGroup inside the pod’s security context so that the volume can be readable and writable by the Pod.

kubernetes.io
Related Topics: Docker Containers
2 comments
  • securityContext.fsGroupChangePolicy が新たに導入され、OnRootMismatch に設定されている場合、ボリュームのルートが期待したパーミッションの場合には再帰的に chown と chmod を実行する処理をスキップできる。securityContext.fsGroup は Pod にボリュームがマウントされるたびに chown と chmod を再帰的に実行する。これは要求した fsGroup にすでに一致しているボリュームであっても実行されるため、大量の小さいファイルのある大きいボリュームでは特に Pod のスタートアップに無駄に時間がかかっていた。
    話変わって、CSI ドライバカスタムリソース .spec.fsGroupPolicy で fsGroup 処理の実行をサポートしているボリュームかどうかを示せるようになった。fsGroup によるパーミッションの変更は、CSI ボリュームの場合それが実行可能なのかどうかを自動的に判断していたが、正確に判断できず問題を引き起こしていた。

  • securityContext.fsGroupChangePolicy が新たに導入され、OnRootMismatch に設定されている場合、ボリュームのルートが期待したパーミッションの場合には再帰的に chown と chmod を実行する処理をスキップできる。securityContext.fsGroup は Pod にボリュームがマウントされるたびに chown と chmod を再帰的に実行する。これは要求した fsGroup にすでに一致しているボリュームであっても実行されるため、大量の小さいファイルのある大きいボリュームでは特に Pod のスタートアップに無駄に時間がかかっていた。
    話変わって、CSI ドライバカスタムリソース .spec.fsGroupPolicy で fsGroup 処理の実行をサポートしているボリュームかどうかを示せるようになった。fsGroup によるパーミッションの変更は、CSI ボリュームの場合それが実行可能なのかどうかを自動的に判断していたが、正確に判断できず問題を引き起こしていた。