我有一个Kubernetes集群,我正在尝试部署不同的Helm,当图表没有持久性时,一切都很好。当Helm图表使用持久卷时,我总是遇到权限问题。我正在使用Windows文件共享CIFS和我创建的持久卷,我使用的是秘密存储CSI驱动程序
这是我的持久卷,并声明yaml,我有一个秘密(cifs-秘)与我的用户名和密码。现在我没有使用存储类,只是手动创建的PV/PVC
apiVersion: v1
metadata:
name: myvolume
labels:
app: myapp
spec:
storageClassName: ""
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=0998
- gid=0996
- mfsymlinks
- nobrl
- cache=none
- domain=mydomain
csi:
driver: smb.csi.k8s.io
readOnly: false
volumeHandle: helmdata
volumeAttributes:
source: "//192.168.1.189/helm"
nodeStageSecretRef:
name: cifs-secret
namespace: helm
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: myclaim
namespace: mynamespace
labels:
app: myapp
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
volumeName: cifs-helmtest-pv
对于我来说,这是失败的,直到我知道哪个用户需要访问卷,我使用的是IronBank Grafana映像,所以我在Docker中本地运行这个映像,然后在命令行中输入more /etc/passwd,它在输出的末尾列出uid:0998和gid:0996。因此,我更新了卷yaml,并将- uid=0998和- gid=0996添加到挂载选项中。
一旦设置好了,我就能够成功地安装Bitnami图表了,我必须更新模板目录中的configmap.yaml来匹配IronBank路径,这与Bitnami路径略有不同。
我在Bitnami Postgresql Helm图表中尝试了同样的逻辑,但我似乎无法做到这一点,当我将shell放入容器并运行更多/etc/passwd时,我使用uid:65543和gid:65543 (无人帐户)创建了一个包含这些uid/gid的卷,我经常在目录上获得权限错误或不正确的权限,有时它会在卷挂载位置创建数据文件夹,但始终是空的。
创建windows共享的用户帐户是我在cifs-保密中使用的用户名和密码。
任何帮助都将不胜感激。
发布于 2022-05-07 14:43:36
我通过使用Bitnami头盔图的Ironbank Postgres图像找到了解决方案,我将UID和GID更新为26,并将卷信息设置如下.
此外,将数据目录从Bitnami默认值切换到/var/lib/postgresql/data对于使IronBank映像与Bitnami图表一致非常重要。
https://stackoverflow.com/questions/71609321
复制相似问题