我在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容器">