gpt4 book ai didi

kubernetes - 具有特定用户权限的Azure磁盘的永久卷声明

转载 作者:行者123 更新时间:2023-12-02 11:44:10 25 4
gpt4 key购买 nike

我正在尝试创建动态Azure磁盘卷以在具有特定权限要求的Pod中使用。

容器runs under the user id 472 ,所以我需要找到一种方法来(至少)为该用户安装具有rw权限的卷。

使用以下StorageClass定义

apiVersion: storage.k8s.io/v1
kind: StorageClass
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate
metadata:
name: foo-storage
mountOptions:
- rw
parameters:
cachingmode: None
kind: Managed
storageaccounttype: Standard_LRS

还有这个PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: foo-storage
namespace: foo
spec:
accessModes:
- ReadWriteOnce
storageClassName: foo-storage
resources:
requests:
storage: 1Gi

我可以在pod中运行以下命令:
containers:
- image: ubuntu
name: foo
imagePullPolicy: IfNotPresent
command:
- ls
- -l
- /var/lib/foo
volumeMounts:
- name: foo-persistent-storage
mountPath: /var/lib/foo
volumes:
- name: foo-persistent-storage
persistentVolumeClaim:
claimName: foo-storage

pods 将正确安装并启动,但是 kubectl logs <the-pod>将显示
total 24
drwxr-xr-x 3 root root 4096 Nov 23 11:42 .
drwxr-xr-x 1 root root 4096 Nov 13 12:32 ..
drwx------ 2 root root 16384 Nov 23 11:42 lost+found

也就是说,当前目录被挂载为 root所拥有,并且对于所有其他用户而言是只读的。

我尝试将 mountOptions部分添加到 StorageClass中,但是无论我尝试什么( uid=472user=472等),启动时都会出现安装错误,例如
mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m1019941199 --scope -- mount -t ext4 -o group=472,rw,user=472,defaults /dev/disk/azure/scsi1/lun0 /var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m1019941199
Output: Running scope as unit run-r7165038756bf43e49db934e8968cca8b.scope.
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.

我也尝试从 man mount获取一些信息,但是我没有找到任何有效的方法。

如何配置此存储类,持久卷声明和卷挂载,以便运行容器进程的非root用户可以访问已挂载路径中的写入(并创建子目录)?

最佳答案

您需要像以下那样定义您的pod规范的securityContext,以便它与新的运行用户和组ID匹配:

securityContext:
runAsUser: 472
fsGroup: 472

稳定的格拉法纳 Helm 图也以相同的方式进行。请在此处的“配置”下查看 securityContext: https://github.com/helm/charts/tree/master/stable/grafana#configuration

关于kubernetes - 具有特定用户权限的Azure磁盘的永久卷声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53446184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com