【发布时间】:2021-04-09 03:43:01
【问题描述】:
我遇到了 emptydir 的问题:
将任何文件从 init 容器复制到 emptydir 会使其在主容器中无法执行 发生在我的 4 个节点中的 3 个上,在单个主节点上没有问题 成功运行它的主节点在某些文件上显示不同的 selinux 标签 集群信息:
- RHEL 7,允许 SELinux,VM 位于内部数据中心
- kubernetes 1.20,由 kubeadm 部署
- 4 节点集群(1 是主节点)
Ex Pod Spec(在 3 个节点上失败,在单个主节点上成功):
apiVersion: v1
kind: Pod
metadata:
name: emptydir-test
namespace: default
spec:
initContainers:
- command:
- "bash"
- -c
- "cp $(which ls) /empty-dir/empty-dir-ls ; cp $(which ls) /mem-dir/mem-ls"
image: ubuntu
imagePullPolicy: IfNotPresent
name: init
volumeMounts:
- mountPath: /empty-dir
name: empty-dir
- mountPath: /mem-dir
name: mem-dir
containers:
- securityContext:
privileged: true
command:
- "bash"
- -c
- "id ; ls -alhZ /mem-dir; /mem-dir/mem-ls -alhZ /root ; ls -alhZ /empty-dir ; /empty-dir/empty-dir-ls -alhZ /root"
image: ubuntu
imagePullPolicy: IfNotPresent
name: emptydir-test
volumeMounts:
- mountPath: /empty-dir
name: empty-dir
- mountPath: /mem-dir
name: mem-dir
volumes:
- emptyDir:
medium: Memory
name: mem-dir
- emptyDir: {}
name: empty-dir
显示失败的日志:
uid=0(root) gid=0(root) groups=0(root)
total 140K
drwxrwxrwt. 2 root root system_u:object_r:tmpfs_t:s0 60 Apr 8 00:32 .
drwxr-xr-x. 1 root root system_u:object_r:unlabeled_t:s0 49 Apr 8 00:32 ..
-rwxr-xr-x. 1 root root system_u:object_r:container_file_t:s0 139K Apr 8 00:32 mem-ls
total 8.0K
drwx------. 2 root root system_u:object_r:unlabeled_t:s0 37 Apr 1 01:26 .
drwxr-xr-x. 1 root root system_u:object_r:unlabeled_t:s0 49 Apr 8 00:32 ..
-rw-r--r--. 1 root root system_u:object_r:unlabeled_t:s0 3.1K Dec 5 2019 .bashrc
-rw-r--r--. 1 root root system_u:object_r:unlabeled_t:s0 161 Dec 5 2019 .profile
total 140K
drwxrwxrwx. 2 root root system_u:object_r:container_file_t:s0 25 Apr 8 00:32 .
drwxr-xr-x. 1 root root system_u:object_r:unlabeled_t:s0 49 Apr 8 00:32 ..
-rwxr-xr-x. 1 root root system_u:object_r:container_file_t:s0 139K Apr 8 00:32 empty-dir-ls
bash: /empty-dir/empty-dir-ls: Permission denied
显示成功的日志:
uid=0(root) gid=0(root) groups=0(root)
total 140K
drwxrwxrwt. 2 root root system_u:object_r:tmpfs_t:s0 60 Apr 8 00:34 .
drwxr-xr-x. 1 root root system_u:object_r:container_share_t:s0 49 Apr 8 00:34 ..
-rwxr-xr-x. 1 root root system_u:object_r:container_file_t:s0 139K Apr 8 00:34 mem-ls
total 8.0K
drwx------. 2 root root system_u:object_r:container_share_t:s0 37 Apr 1 01:26 .
drwxr-xr-x. 1 root root system_u:object_r:container_share_t:s0 49 Apr 8 00:34 ..
-rw-r--r--. 1 root root system_u:object_r:container_share_t:s0 3.1K Dec 5 2019 .bashrc
-rw-r--r--. 1 root root system_u:object_r:container_share_t:s0 161 Dec 5 2019 .profile
total 140K
drwxrwxrwx. 2 root root system_u:object_r:container_file_t:s0 25 Apr 8 00:34 .
drwxr-xr-x. 1 root root system_u:object_r:container_share_t:s0 49 Apr 8 00:34 ..
-rwxr-xr-x. 1 root root system_u:object_r:container_file_t:s0 139K Apr 8 00:34 empty-dir-ls
total 8.0K
drwx------. 2 root root system_u:object_r:container_share_t:s0 37 Apr 1 01:26 .
drwxr-xr-x. 1 root root system_u:object_r:container_share_t:s0 49 Apr 8 00:34 ..
-rw-r--r--. 1 root root system_u:object_r:container_share_t:s0 3.1K Dec 5 2019 .bashrc
-rw-r--r--. 1 root root system_u:object_r:container_share_t:s0 161 Dec 5 2019 .profile
我注意到失败 (system_u:object_r:unlabeled_t:s0) 和成功 (system_u:object_r:container_share_t:s0) 容器日志之间根目录的不同 selinux 标签。但是已经确认所有节点都处于许可模式,所以不确定 selinux 是否可以/仍然以某种方式影响它。
非常感谢任何方向或建议!
【问题讨论】:
标签: kubernetes