在 Kubernetes v 1.27 中将第二个 pod 安装到本地存储 PVC 后,第一个 pod 失去目录权限

问题描述 投票:0回答:1

使用本地存储将数据文件存储到/data/dummy1。 只要我能告诉,这永远有效。我让 pod 以 root 身份运行,执行基本文件生成和写入。

第二个容器安装到同一 PVC 以监视目录。 一旦安装了第二个容器,第一个容器就会失去 /data 作为 root 的权限。即使执行到 Pod/容器中,我也无法再执行 ls /data/dummy1 了。

两个 Pod 都在同一节点上运行,Pod 2 现在可以访问该目录。我可以看到主机系统上写入的文件

fsGroup、runAsUser 和 runAsGroup 都是相同的,并且 pod 之间都是 root。

雷尔8.8
xfs 文件系统

pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-3
  namespace: dummy 
spec:
  storageClassName: local-storage 
  accessModes:
    - ReadWriteMany
  volumeName: pv-3
  resources:
    requests:
      storage: 10Gi

部署规范.yaml

...
        volumeMounts:
        - mountPath: /data
          name: local-persistent-storage
      volumes:
        - name: local-persistent-storage
          persistentVolumeClaim:
            claimName: pvc-3

尝试过: 将pod1挂载到本地存储pvc,读/写文件 将 pod2 挂载到同一个本地存储 PVC,读/写文件。

预计: 能够从安装到同一本地存储 pvc 的同一节点上具有相同安全上下文的 2 个 pod 读取和写入文件

实际: Pod2 获得了读/写访问权限,而 Pod1 失去了访问权限

kubernetes file-permissions
1个回答
0
投票

我发现答案是在 pod/容器启动时修改 selinux 标志的方式。

我修改了目录

sudo chcon -Rt svirt_sandbox_file_t s0 [directory path]

© www.soinside.com 2019 - 2024. All rights reserved.