在 Kubernetes 中容器内的 root 用户是宿主机的 root 用户吗?
默认情况下是的。在不使用 user namespace 的情况下,对于以 root 用户运行的容器而言,发生容器逃逸(如 CVE-2024-21626)时,容器将拥有在宿主机上的 root 特权。可以通过设置 hostUsers: false
来为 Pod 启用 user namespace。
yaml
apiVersion: v1
kind: Pod
metadata:
name: userns
spec:
hostUsers: false
containers:
- name: shell
command: ["sleep", "infinity"]
image: debian
参考资料: