gpt4 book ai didi

Kubernetes fsGroup 不会更改 PersistentVolume 上的文件所有权

转载 作者:行者123 更新时间:2023-12-04 15:06:17 29 4
gpt4 key购买 nike

在主机上,挂载目录 ( /opt/testpod ) 中的所有内容都归 uid=0 gid=0 所有。我需要这些文件归容器决定的任何内容所有,即不同的 gid,以便能够在那里写入。我正在测试的资源:

---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv
labels:
name: pv
spec:
storageClassName: manual
capacity:
storage: 10Mi
accessModes:
- ReadWriteOnce
hostPath:
path: "/opt/testpod"

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc
spec:
storageClassName: manual
selector:
matchLabels:
name: pv
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Mi

---
apiVersion: v1
kind: Pod
metadata:
name: testpod
spec:
nodeSelector:
foo: bar
securityContext:
runAsUser: 500
runAsGroup: 500
fsGroup: 500
volumes:
- name: vol
persistentVolumeClaim:
claimName: pvc
containers:
- name: testpod
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
volumeMounts:
- name: vol
mountPath: /data
pod运行后,我 kubectl exec进入它和 ls -la /data显示 gid=0 仍然拥有的所有内容。根据一些 Kuber 文档, fsGroup应该在 pod start 上 chown 一切,但它没有发生。请问我做错了什么?

最佳答案

hostpath类型 PV 不支持安全上下文。您必须是 root 才能写入卷。在此 github issue 中对此进行了很好的描述。这个文档是关于 hostPath :

The directories created on the underlying hosts are only writable by root. You either need to run your process as root in a privilegedcontainer or modify the file permissions on the host to be able to write to ahostPath volume


您可能还想查看此 github request描述为什么更改主机目录的权限是危险的。
人们描述的解决方法似乎是授予您的用户 sudo 权限,但这实际上使以非 root 用户身份运行容器的想法毫无用处。
安全上下文似乎与 emptyDir 卷配合良好(在 k8s 文档 here 中有很好的描述)

关于Kubernetes fsGroup 不会更改 PersistentVolume 上的文件所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66025328/

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