Docker支持用户名称空间,因此uid名称空间与主机完全分离,从而可以有效地将容器中的root映射到主机上的其他名称。
Kubernetes是否支持在底层docker引擎上启用此功能?它是否可以在没有问题的情况下开箱即用?
因此,根据Docker(在评论中提到)和this,它不像this那样受支持。
但是,如果您正在考虑隔离工作负载,那么还有其他选择(它们不一样,但选项非常好):
你可以使用Pod Security Policies,特别是你可以使用RunAsUser和AllowPrivilegeEscalation=false。 Pod安全策略可以绑定到RBAC,因此您可以限制用户运行其pod的方式。
换句话说,您可以强制用户仅将“pod”作为“youruser”运行,并禁用pod privileged
中的securityContext
标志。您还可以在容器图像中禁用sudo
。
此外,您可以删除Linux Capabilities,特别是CAP_SETUID
。甚至更高级使用seccomp配置文件,使用SElinux或Apparmor配置文件。
运行不受信任的工作负载的其他替代方法(在撰写本文时为alpha版):