Permissions
如何在具有非 root 使用者權限的 Kubernetes pod 中掛載 azurefile persistentVolume?
我在 Azure 上執行 Kubernetes 1.8.4 集群(填充了 acs-engine v0.10)。
我需要執行具有數據持久性的 Redis pod,因此我將 persistentVolume / persistentVolumeClaim 與
azurefile
storageClass 一起使用,以便 Redis 可以保存到該卷。問題是 Redis 容器正在使用 redis:redis 使用者執行,並且 Kubernetes 使用 root:root 所有權和 0700 訪問模式安裝卷。
=> 所以 Redis 無法寫入該卷並死掉。
通常我會用 mountOptions 解決這個問題,但我擔心根據Kubernetes 文件,AzureFiles 不支持此選項:
注意:並非所有持久卷類型都支持掛載選項。
有沒有人設法在具有非 root 訪問權限的 Kubernetes pod 中安裝 AzureFiles 卷?如果是這樣,我很想知道如何:-)
蒂亞!
在查看了這篇關於CloudBees 的博文後,發現 azurefile支持mountOptions,只是我需要創建一個專用的 StorageClass 並通過 PersistentVolumeClaim 使用它。
--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: redis-sc annotations: labels: kubernetes.io/cluster-service: 'true' provisioner: kubernetes.io/azure-file parameters: reclaimPolicy: 'Delete' mountOptions: - "uid=999,gid=999"
Azure 的替代解決方案是將 azurefile 掛載為持久卷聲明。 https://docs.microsoft.com/en-us/azure/aks/azure-files-volume#mount-file-share-as-an-persistent-volume
uid, gid
可以傳遞文件系統權限(0777)。就個人而言,嘗試過並且測試過!