1. ホーム
  2. amazon-web-services

[解決済み] Kubernetes: VolumeMountのユーザーグループとファイルのパーミッションを設定する方法

2023-01-31 12:09:14

質問

私はkopsを使用してAWS上でKubernetesクラスタを実行しています。コンテナにEBSボリュームをマウントし、アプリケーションから見えるようにしましたが、私のアプリケーションはルートとして実行されていないため、読み取り専用になっています。どうすれば PersistentVolumeClaim を root 以外のユーザーでマウントするにはどうしたらよいでしょうか?その VolumeMount には、マウントされたパスのユーザー、グループ、またはファイルのパーミッションを制御するオプションはないようです。

以下は私のDeployment yamlファイルです。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: notebook-1
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: notebook-1
    spec:
      volumes:
      - name: notebook-1
        persistentVolumeClaim:
          claimName: notebook-1
      containers:
      - name: notebook-1
        image: jupyter/base-notebook
        ports:
        - containerPort: 8888
        volumeMounts:
        - mountPath: "/home/jovyan/work"
          name: notebook-1

どのように解決するのですか?

Pod Security Context は fsGroup の設定をサポートしており、ボリュームを所有するグループ ID を設定することができます。ドキュメントにある例です。

apiVersion: v1
kind: Pod
metadata:
  name: hello-world
spec:
  containers:
  # specification of the pod's containers
  # ...
  securityContext:
    fsGroup: 1234

より詳細な情報は ここで