Solución:
Si establece el securityContext
para la configuración del pod, puede asegurarse de que el volumen esté montado con los permisos adecuados.
Ejemplo:
apiVersion: v1
kind: Pod
metadata:
name: demo
spec:
securityContext:
fsGroup: 2000
volumes:
- name: task-pv-test-storage
persistentVolumeClaim:
claimName: task-pv-test-claim
containers:
- name: demo
image: example-image
volumeMounts:
- name: task-pv-test-storage
mountPath: /data/demo
En el ejemplo anterior, el almacenamiento se montará en /data/demo
con 2000 ID de grupo, que se establece mediante fsGroup
. Al configurar fsGroup, todos los procesos del contenedor también serán parte del ID de grupo suplementario 2000, por lo que debería tener acceso a los archivos montados.
Puede leer más sobre el contexto de seguridad del pod aquí: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Gracias a 白 栋 天 por el dato. Por ejemplo, si el pod securityContext se establece en:
securityContext:
runAsUser: 1000
fsGroup: 1000
usted enviaría una SSH al host NFS y ejecutaría
chown 1000:1000 -R /some/nfs/path
Si no conoce al usuario: grupo o muchos pods lo montarán, puede ejecutar
chmod 777 -R /some/nfs/path