Kubernetes serviceAccounts和SELinux

时间:2016-02-11 11:33:37

标签: kubernetes selinux

我们在启用SELinux的情况下运行Kubernetes。我们想使用serviceAccounts。当我禁用SELinux时,容器可以按预期读取秘密。

但是,当我启用SELinux时,我们无法读取容器内的秘密。例如:

localhost$ kubectl exec -it my-pod bash
my-pod$ ls /var/run/secrets/kubernetes.io/serviceaccount/
token
my-pod$ cat /var/run/secrets/kubernetes.io/serviceaccount/token
Permission denied

在SELinux中使用serviceAccounts的推荐方法是什么?

谢谢, 安德烈

2 个答案:

答案 0 :(得分:4)

您可能需要运行以下命令才能在volumes目录中正确设置SELinux上下文。我有一个未解决的问题,以便将来自动实现这一目标:

sudo chcon -Rt svirt_sandbox_file_t /var/lib/kubelet

希望有所帮助。

答案 1 :(得分:2)

它有一个selinux政策规则(至少在Fedora 23中),但不幸的是它有一个错字。

semanage fcontext -l | grep /var/lib/kub
/var/lib/kublet(/.*)?                              all files          system_u:object_r:docker_var_lib_t:s0

应该是" kubelet"。我打开了一个错误here