启用 SELINUX 的 Kubernetes Secrets 权限被拒绝

Permission Denied for Kubernetes Secrets with SELINUX Enabled

我按照 kubernetes 文档来管理我的应用程序的秘密。

http://kubernetes.io/v1.1/docs/user-guide/secrets.html

当 pod 启动时,kubernetes 会在正确的位置挂载秘密,但应用程序无法读取文档中描述的秘密数据。

root@quoter-controller-whw7k:/etc/quoter# whoami
root
root@quoter-controller-whw7k:/etc/quoter# ls -l
ls: cannot access local.py: Permission denied
total 0
-????????? ? ? ? ?            ? local.py
root@quoter-controller-whw7k:/etc/quoter# cat local.py 
cat: local.py: Permission denied

这有什么问题?


SELinux 配置为强制模式

SELINUX=enforcing

Docker 使用以下命令启动

/usr/bin/docker daemon --registry-mirror=http://mirror.internal:5000 --selinux-enabled --insecure-registry registry.internal:5555 --storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/atomicos-docker--pool --bip=10.16.16.1/24 --mtu=8951

根据 Atomic 问题跟踪器,SELinux 和 Kubernetes Secrets 存在一个已知问题,请参阅 ISSUE-117