Kuberentes в настоящее время не предоставляет функциональные возможности для установки прав на монтирование тома / владельца с использованием спецификации модуля. Все поля и их описание можно найти в kubernetes api reference .
Наиболее часто используемый метод, который вы можете найти в inte rnet, использует initContiners. На самом деле не существует другого лучшего способа сделать это.
Вы также упоминали, что хотели бы избегать использования chown в каждом развертывании. Вы можете избежать этого, используя оператор if в bash, как в следующем примере, так что chown выполняется только при необходимости:
---
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
volumes:
- name: my-pv-storage
persistentVolumeClaim:
claimName: my-pv-claim
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', 'OWNER=`stat -c "%U:%G" /mnt/data` && if [ $OWNER == "root:root" ]; then chown -R 1000:3000 /mnt/data; fi']
volumeMounts:
- mountPath: "/mnt/data"
name: my-pv-storage
containers:
- name: my-pv-container
image: my-image
volumeMounts:
- mountPath: "/mnt/data"
name: my-pv-storage
securityContext:
runAsUser: 1000
runAsGroup: 3000
Дайте мне знать, что это было полезно.