100

Kops を使用して、AWS で Kubernetes クラスターを実行しています。EBS ボリュームをコンテナーにマウントしました。アプリケーションからは表示されますが、アプリケーションがルートとして実行されないため、読み取り専用です。PersistentVolumeClaimroot 以外のユーザーとしてマウントするにはどうすればよいですか? には、マウントされたパスのユーザー、グループ、またはファイルのVolumeMountアクセス許可を制御するオプションがないようです。

これが私の展開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
4

9 に答える 9

2

この問題を参照してください: https://github.com/kubernetes/kubernetes/issues/2630

の場合emptydir、 のsecurityContextspec使用できます。

spec:
  securityContext:
    runAsUser: 1000
    fsGroup: 1000
containers: ...

ボリュームが の場合、 をボリュームhostpath内のパスにinitContainer使用できます。chown

initContainers:
    - name: example-c
      image: busybox:latest
      command: ["sh","-c","mkdir -p /vol-path && chown -R 1000:1000 /vol-path"]
      resources:
        limits:
          cpu: "1"
          memory: 1Gi
      volumeMounts:
        - name: vol-example
          mountPath: /vol-path
于 2020-09-23T06:33:44.907 に答える