Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes fsGroup未更改PersistentVolume上的文件所有权_Kubernetes - Fatal编程技术网

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

Kubernetes fsGroup未更改PersistentVolume上的文件所有权,kubernetes,Kubernetes,在主机上,挂载目录(/opt/testpod)中的所有内容都归uid=0 gid=0所有。我需要这些文件归容器决定的任何人所有,即不同的gid,以便能够在那里写入。我正在测试的资源: --- apiVersion: v1 kind: PersistentVolume metadata: name: pv labels: name: pv spec: storageClassName: manual capacity: storage: 10Mi accessM

在主机上,挂载目录(
/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运行后,I
kubectl exec
进入pod,并且
ls-la/data
显示gid=0仍然拥有的所有内容。根据库伯的一些文件,
fsGroup
应该在吊舱启动时检查所有东西,但没有发生。请问我做错了什么?

主机路径
类型PV不支持安全上下文。要写入卷,您必须是root用户。本文档和本文档详细介绍了:

在基础主机上创建的目录只能由root用户写入。您需要以根用户身份在中运行进程,或者修改主机上的文件权限,以便能够写入
主机路径

您可能还想检查这个描述为什么更改主机目录权限是危险的

人们描述的解决方法是授予用户sudo权限,但这实际上使得将容器作为非root用户运行的想法毫无用处


安全上下文似乎与emptyDir卷(在k8s文档中有很好的描述)配合良好。

您可以尝试使用不同于runAsGroup的值fsGroup吗?尝试使用securityContext:privileged:true runAsUser:1000。您也可以尝试使用init容器。该github链接用于
minikube
。它们在
kubernetes
本身中是否有相同的bug/未实现的特性?Upd:没关系,
kubernetes
PR也这么说。