使用本地存储将数据文件存储到/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 失去了访问权限
我发现答案是在 pod/容器启动时修改 selinux 标志的方式。
我修改了目录
sudo chcon -Rt svirt_sandbox_file_t s0 [directory path]