Я пытаюсь создать динамический том Azure Disk для использования в модуле с конкретными требованиями к разрешениям.
Контейнер работает под идентификатором пользователя 472
, поэтому янеобходимо найти способ монтирования тома с разрешениями rw (как минимум) для этого пользователя.
со следующим StorageClass
определенным
apiVersion: storage.k8s.io/v1
kind: StorageClass
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate
metadata:
name: foo-storage
mountOptions:
- rw
parameters:
cachingmode: None
kind: Managed
storageaccounttype: Standard_LRS
и этим PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: foo-storage
namespace: foo
spec:
accessModes:
- ReadWriteOnce
storageClassName: foo-storage
resources:
requests:
storage: 1Gi
Я могу запустить следующее в модуле:
containers:
- image: ubuntu
name: foo
imagePullPolicy: IfNotPresent
command:
- ls
- -l
- /var/lib/foo
volumeMounts:
- name: foo-persistent-storage
mountPath: /var/lib/foo
volumes:
- name: foo-persistent-storage
persistentVolumeClaim:
claimName: foo-storage
Модуль будет монтироваться и запускаться правильно, но kubectl logs <the-pod>
покажет
total 24
drwxr-xr-x 3 root root 4096 Nov 23 11:42 .
drwxr-xr-x 1 root root 4096 Nov 13 12:32 ..
drwx------ 2 root root 16384 Nov 23 11:42 lost+found
, то есть текущий каталогсмонтирован как принадлежащий root
и доступен только для чтения для всех остальных пользователей.
Я пытался добавить раздел mountOptions
в StorageClass
, но все, что я пытаюсь (uid=472
, user=472
и т.д.) Я получаю ошибки монтирования при запуске, например,
mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m1019941199 --scope -- mount -t ext4 -o group=472,rw,user=472,defaults /dev/disk/azure/scsi1/lun0 /var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m1019941199
Output: Running scope as unit run-r7165038756bf43e49db934e8968cca8b.scope.
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
Я также пытался получить некоторую информацию от man mount , но я не нашел ничего работающего.
Как настроить этот класс хранения, утверждение постоянного тома и монтирование тома так, чтобы пользователь без полномочий root, выполняющий контейнер process получает доступ для записи (и создания подкаталогов) в смонтированном пути?