You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Linux的ps命令能看到K8s Pod运行的进程?

问题

在Linux基金会的CKAD课程(LFD259)环境中,我用kubeadm搭建了裸金属K8s集群,worker节点上运行着metrics-server的Deployment:

student@master:~$ k get deployments.apps metrics-server -o yaml | grep -A10 args
      - args:
        - --secure-port=4443
        - --cert-dir=/tmp
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls
        image: k8s.gcr.io/metrics-server/metrics-server:v0.6.1
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
student@master:~$ k get pod metrics-server-6894588c69-fpvtt -o wide
NAME                              READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
metrics-server-6894588c69-fpvtt   1/1     Running   0          4d15h   192.168.171.98   worker   <none>           <none>
student@master:~$

我原本以为Pod的进程只在worker节点的容器内部运行,但用Linux的ps命令竟然能直接看到它:

student@worker:~$ ps aux | grep kubelet-preferred-address-types
ubuntu   1343092  0.3  0.6 752468 49612 ?        Ssl  Oct28  20:25 /metrics-server --secure-port=4443 --cert-dir=/tmp --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --kubelet-use-node-status-port --metric-resolution=15s --kubelet-insecure-tls
student  3310743  0.0  0.0   8184  2532 pts/0    S+   17:39   0:00 grep --color=auto kubelet-preferred-address-types
student@worker:~$

我忽略了什么关键点?

解答

这是容器技术的核心特性导致的:

  • 容器本质上是宿主机上被隔离的进程,它依赖Linux的namespace(命名空间)实现资源隔离,用cgroup实现资源限制,但进程本身仍然属于宿主机的进程树。
  • 默认情况下,ps aux命令会显示宿主机上所有的进程,包括运行在容器内的进程——这些进程只是被限制在自己的命名空间中,从宿主机角度看它们依然是普通进程。
  • 你看到的/metrics-server进程就是容器内的主进程,只是从宿主机的全局进程视角可见。如果要查看容器内部的进程,需要使用工具进入容器的命名空间,比如kubectl exec <pod-name> -- ps aux,或者用nsenter直接挂载容器的命名空间。

内容的提问来源于stack exchange,提问作者mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:35:27