为什么 linux ps 命令"sees" K8s pods 运行的进程?



我在Linux基金会的CKAD课程(LFD259(的上下文中创建了一个K8s集群。所以它是一个";裸金属";使用kubeadm创建的集群。

因此,我在worker节点上运行了一个度量服务器部署:

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节点上运行的容器中运行。然而,linuxps命令"看到";it:

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:~$

我错过了什么?

容器只是在启用了一些隔离功能的主机上运行的进程。隔离只有一种方式:容器看不到主机上的资源,但主机可以访问容器中运行的所有资源。

因为容器只是一个进程,所以它显示在ps中(容器中派生的任何进程也是如此(。

参见例如:

  • "什么是Linux容器">

最新更新