当前位置:首页 > Web开发 > 正文

kubernetes之Pod中的容器共享进程Namespace

2024-03-31 Web开发

此文讲述如何配置Pod中的容器恭喜共享进程Namespace。当进程名称空间共享被激活,在同一个Pod中,一个容器的进程可以在其他容器中看到。可以使用此成果来配置协作容器,例如日志措置惩罚惩罚措施sidecar容器,或对不包罗调试实用措施(例如shell)的容器映像进行故障排除。在Kubernetes v1.17中已处于不变状态。

备注:此文档参考官方文档,并加以本身的理解。如有误导性的内容,请攻讦斧正。

配置Pod共享进程Namespace

使用shareProcessNamespace激活进程Namespace共享。例如:

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

1、在集群中创建nginxPod

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

创建Pod

# kubectl apply -f /root/k8s-example/pods/share-process-namespace.yaml

2、将 shell 容器附加到nginx容器上,运行ps命令

# kubectl attach -it nginx -c shell

输出内容如下:

/ # ps ax PID USER TIME COMMAND 1 root 0:00 /pause 6 root 0:00 nginx: master process nginx -g daemon off; 11 101 0:00 nginx: worker process 12 root 0:00 sh 18 root 0:00 ps ax

可以用信号通知其他容器中的进程。 例如,将SIGHUP发送到nginx以从头启动worker进程。 这需要SYS_PTRACE成果。

/ # kill -HUP 6 / # ps ax PID USER TIME COMMAND 1 root 0:00 /pause 6 root 0:00 nginx: master process nginx -g daemon off; 12 root 0:00 sh 19 101 0:00 nginx: worker process 20 root 0:00 ps ax

甚至可以使用/proc/$pid/root链接访谒另一个容器映像。

/ # head /proc/6/root/etc/nginx/nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; 理解进程Namepsace共享

Pod可以共享很多资源,例如共享进程名称空间。不过,某些容器图片可能会与其他容器断绝,因此了解这些差异很重要:

容器的进程不再有PID 1。一些容器在没有 PID 1进程或运行诸如kill -HUP 1之类的命令来发出容器进程信号拒绝启动(例如:,,容器使用 systemd)在具有共享进程名称空间的Pod中,kill -HUP 1将向Pod沙箱发出信号。 (在以上示例中为/ pause。)

进程对Pod中的其他容器可见。 这包孕/proc中所有可见的信息,例如作为参数或环境变量通报的暗码。 这些仅受通例Unix权限掩护。

容器文件系对Pod中其他容器通过/proc/$pid/root链接。这使调试越发容易,但是这也意味着文件系统奥秘仅受文件系统许可权掩护。

kubernetes之Pod中的容器共享进程Namespace

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31064.html