1、在 Pod 中的容器之间共享进程命名空间
kubernetes官网链接
进程命名空间共享使用 v1.PodSpec 中的 ShareProcessNamespace 字段启用。例如:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
shareProcessNamespace: true
containers:
- name: nginx
image: nginx
- name: shell
image: busybox
securityContext:
capabilities:
add:
- SYS_PTRACE
stdin: true
tty: true

- 容器进程不再具有
PID 1。 在没有PID 1的情况下,一些容器镜像拒绝启动(例如,使用 systemd 的容器),或者拒绝执行kill -HUP 1之类的命令来通知容器进程。在具有共享进程命名空间的pod中,kill -HUP 1将通知pod沙箱(在上面的例子中是/pause)。 - 进程对
pod中的其他容器可见。 这包括/proc中可见的所有信息,例如作为参数或环境变量传递的密码。这些仅受常规Unix权限的保护。 - 容器文件系统通过
/proc/$pid/root链接对pod中的其他容器可见。 这使调试更加容易,但也意味着文件系统安全性只受文件系统权限的保护。
在Kubernetes中,Pod内的容器可以通过设置ShareProcessNamespace为true来共享进程命名空间,这影响了容器进程的PID1状态,使进程在Pod内可见,并通过/proc链接暴露文件系统,便于调试但需注意安全。
1876

被折叠的 条评论
为什么被折叠?



