Можно ли установить GID/UID для Filestore в GKE?

Я хочу использовать FileStore в GKE, используя PVC и PV на основе этого официального документа: https://cloud.google.com/filestore/docs/accessing-fileshares

Мое приложение не работает с правами root, поэтому я хотел бы указать, какой GID/UID будет использоваться для монтирования тома в контейнерах.

Я знаю о некоторых альтернативах с использованием InitContainer или отдельного промежуточного программного обеспечения NFS, но хотел бы избежать еще одной движущейся части.

1 ответ

Kuberentes в настоящее время не предоставляет функциональные возможности для установки разрешений на монтирование тома / владельца с использованием спецификации модуля. Все поля и их описание можно найти в справочнике api kubernetes.

Наиболее часто используемый метод, который вы можете найти в Интернете, - это 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

Сообщите мне, это было полезно.

Другие вопросы по тегам