目錄
一.為什么需要kubernetes
? 1.對于開發人員
? 2.對于運維人員
二.kubernetes帶來的挑戰
三.kubernetes架構解析
? 1.master節點的組件
? 2.node節點包含的組件
? 3.kubernetes網絡插件
四.kubernetes快速安裝kubernetes集群
? 1.部署docker環境
? 2.部署kubernetes集群
五.Metrics-server部署
? 1.修改yaml文件并安裝
? 2.測試安裝結果
一.為什么需要kubernetes
很多人會有疑問,有了 Docker 為什么還用 Kubernetes?
? ?在業務開始進行容器化時,前期需要容器化的項目可能并不多,涉及的容器也并不多,此時基于 Docker 容器直接部署至宿主機也能實現基本的需求。但是隨著項目越來越多,管理的容器也會越來越多,此時使用 “裸容器” 部署的方式管理起來就顯得很吃力,并且隨著業務量的增加,會明顯體會到 “裸容器” 的不足。比如:
-
宿主機宕機造成該宿主機上的容器不可用,且無法自動恢復。
-
容器明明在運行,接口就是不通(健康檢查做得不到位)
-
應用程序部署、回滾、擴縮容困難。
-
成百上千的容器和涉及的端口難以維護。
? ?上面的問題知識做一個簡單的羅列,真正使用時還有很多其他的問題。大家也可能使用過 Docker - compose、Docker - swarm 等編排工具,但是這些工具的功能和 Kubernetes 比起來還是相差很多的。所以注定 Kubernetes 編排工具將成為主流的容器編排工具。
1.對于開發人員
? ?對于開發人員而言,Kubernetes 是提升開發效率、保障應用穩定交付的重要助力,核心價值體現在以下方面:
一、環境一致性,告別 “本地能跑線上崩”
? ?開發時用 Docker 打包應用及依賴成鏡像,K8s 能讓鏡像在開發、測試、生產環境以統一方式運行,消除環境差異導致的調試成本,開發人員只需專注代碼邏輯,無需反復適配環境。
二、簡化復雜應用部署
? ?開發微服務等復雜應用,涉及多個服務、依賴,K8s 可通過配置文件(如 Deployment、Service),定義服務副本數、網絡規則等,一鍵部署整套應用,無需手動逐個啟動容器、配置網絡,降低部署復雜度。
2.對于運維人員
? ?對于運維人員來說,Kubernetes 是大幅提升運維效率、保障系統穩定可靠的 “利器”,核心價值體現在以下關鍵場景:
一、自動化運維,解放人力
-
批量部署與管理:面對成百上千容器,無需逐臺操作。通過 K8s 配置文件(如 Deployment),定義應用副本數、資源限額等,一鍵部署 / 更新多實例,輕松管理復雜應用集群。
-
故障自愈:自動監控容器、節點狀態,容器崩潰自動重啟,節點故障時遷移容器到健康節點,無需人工值守排查、重啟,減少服務中斷時間。
二、資源精細化管控
-
資源調度:智能分配容器到集群節點,平衡 CPU、內存負載,避免節點過載或閑置,提升服務器資源利用率(比如把低負載容器調度到空閑節點)。
-
資源隔離:為不同應用 / 服務設置 CPU、內存限額(Requests/Limits),防止某一應用 “搶占” 資源導致其他服務故障,保障多業務穩定共存。
二.kubernetes帶來的挑戰
? ? ?Kubernetes 從誕生至今,一路突飛猛進,在容器編排的領域過關斬將,最終拿下了容器編排的冠軍寶座,成為最無可替代、不可撼動的佼佼者,但是針對 Kubernetes 的學習和使用始終是一個很大的難題。
? ? 首先,Kubernetes 本身的學習就很困難,因為 Kubernetes 概念太多,涉及的知識面也非常廣泛,可能學習了一個月也無法入門,甚至連集群也搭建不出來,使人望而卻步。并且 Kubernetes 的技術能力要求也比較高,因為運維不僅僅均線于傳統運維,有時候可能要修改業務代碼、制定業務上線體系、給研發人員在開發應用中提供更好的建議等。需要掌握的知識也有很多,可能需要掌握公司內所有使用帶的代碼,比如代碼如何進行編譯、如何正確發布、如何修改代碼配置文件等,這對于運維人員也是一種挑戰。Kubernetes 的誕生把運維從傳統的運維轉變到了 DevOps 方向,需要面臨的問題更多,需要面臨的新技術也很多,但是當真正掌握 Kubernetes 的核心和涉及理念,就會收益終身。
三.kubernetes架構解析
1.master節點組件
? ? master 節點是 Kubernetes 集群的控制節點,在生產環境中不建議部署集群核心組件外的任何容器(在 kubeadm 安裝方式下,系統組件以容器方式運行在 master 節點的宿主機器上;二進制安裝方式下,系統組件以守護進程的方式運行,master 節點可以不運行任何容器 ),公司業務程序的容器是不建議部署在 master 節點上,以避免升級或者維護時對業務造成影響。
(1) API server
API server 提供了集群網關,是整個集群的控制中樞,提供集群中各個模塊之間的數據交換,并將集群信息存儲到 ETCD 集群中。同時,它也是集群管理、資源配額、提供完備的集群安全機制的入口,為集群各類資源對象提供增刪改查,API server 在客戶端對集群進行訪問。客戶端需要通過認證,并使用 API server 作為訪問節點和 pod (以及服務)的堡壘和代理 / 通道。
-
API 服務器公開 Kubernetes API。
-
REST/kubectl 的入口點 —— 它是 Kubernetes 控制平面的前端。
-
它跟蹤所有集群組件的狀態并管理它們之間的交互。
-
它旨在水平擴展。
-
它使用 YAML/JSON manifest 文件。
-
它驗證和處理通過 API 發出的請求。
(2) Scheduler
Scheduler 主要功能是資源調度,將 pod 調度到對應的主機上。依據請求資源的可用性、服務請求的質量等約束條件,k8s 也支持用戶自己提供的調度器。
-
它將 pod 調度到工作節點。
-
它監視 api-server 以查找沒有分配節點的新創建的 Pod,并選擇一個健康的節點讓它們運行。
-
如果沒有合適的節點,則 Pod 將處于掛起狀態,直到出現這樣一個健康的節點。
-
它監視 API Server 的新工作任務。
(3) Controller Manager
Controller Manager 負責維護集群的狀態,比如故障檢測、內存垃圾回收、滾動更新等,也執行 API 業務邏輯;k8s 默認提供 replication controller、replicaset controller、daemonset controller 等控制器。
-
它監視它管理的對象的期望狀態并通過 API 服務器監視它們的當前狀態。
-
采取糾正措施以確保當前狀態與所需狀態相同。
-
它是控制器的控制器。
-
它運行控制器進程,從邏輯上講,每個控制器都是一個單獨的進程,但為了降低復雜性,它們都被編譯成一個二進制文件并在單個進程中運行。
(4) etcd
etcd 用于可靠的存儲集群的配置數據,是一種持久性、輕量級、分布式的鍵值數據存儲組件,可以理解為一種分布式的非關系型數據庫。etcd 是集群的狀態,k8s 默認使用分布式的 etcd 集群整體存儲用來實現發現服務和共享配置集群的所有狀態都存儲在 etcd 實例中,并具有監控的能力,因此當 etcd 中的信息發生變化時,能夠快速地通知集群中相關的組件。
-
它是一個一致的、分布式的、高度可用的鍵值存儲。
-
它是有狀態的持久存儲,用于存儲所有 Kubernetes 集群數據(集群狀態和配置 )。
-
它是集群的真相來源。
-
它可以是控制平面的一部分,也可以在外部進行配置。
? ?etcd 集群最少 3 個節點,容錯點才會有 1 個。3 個節點和 4 個節點的容錯能力是一樣的,所以有時候保持奇數節點更好,從這里可以判斷出我們在部署 k8s 的時候,至少有 3 個節點,才保證 etcd 有 1 個節點容錯性。
? ?另外,etcd 的 Leader 選舉和數據寫入都需要半數以上的成員投票通過確認,因此,集群最好由奇數個成員組成,以確保集群內部一定能夠產生多數投票通過的場景。所以 etcd 集群至少需要 3 個以上的奇數個成員。
? ?如果使用偶數個節點,可能出現以下問題:
-
偶數個節點集群不可用風險更高,表現在選主(Leader 選舉)過程中,有較大概率的等額選票,從而觸發下一輪選舉。
-
偶數個節點集群在某些網絡分割的場景下無法正常工作。當網絡分割發生后,將集群節點對半分割開,形成腦裂。
2.node節點包含的組件
? ?Node 節點也被成為 worker 節點,是主要負責部署容器的主機,集群中的每個節點都必須具備容器的 Runtime(運行時),比如 docker
? ?kubelet 作為守護進程運行在每個 Node 節點上,負責監測該節點上所有的 pod,同時負責上報該節點上所有 pod 的運行狀態,確保節點上的所有容器都能正常運行。當 Node 節點宕機或故障時,該節點上運行的 pod 會被自動轉移到其他節點上。
(1)容器運行時
? ?docker 引擎是本地的容器運行時環境,負責鏡像管理以及 pod 和容器的真正運行。K8s 本身并不提供容器運行時環境,但提供了接口,可以插入所選擇的容器運行時環境,目前支持 Docker 和 rkt。容器運行時是負責運行容器(在 Pod 中)的軟件,為了運行容器,每個工作節點都有一個容器運行時引擎,它從容器鏡像注冊表(container image registry)中提取鏡像并啟動和停止容器。
Kubernetes 支持多種容器運行時:
-
Docker
-
containerd
-
CRI - O
-
Kubernetes CRI(Container Runtime Interface,容器運行時接口)的任何實現。
(2)kubelet
? ?kubelet 是 node 節點上最主要的工作代理,用于匯報節點狀態并負責維護 pod 的生命周期,也負責 volume(CVI)和網絡(CNI)的管理。kubelet 是 pod 和節點 API 的主要實現者,負責驅動容器執行層。作為基本的執行單元,pod 可以擁有多個容器和存儲卷,能夠方便地在每個容器中打包一個單一的應用,從而解脫了應用構建時和部署時所關心的事項,方便在物理機或虛擬機之間進行遷移。
-
它是在集群中的每個節點上運行的代理。
-
它充當著 API Server 和節點之間的管道。
-
它確保容器在 Pod 中運行并且它們是健康的。
-
它實例化并執行 Pod。
-
它監視 API Server 的工作任務。
-
它從主節點那里得到指令并報告給主節點。
(3)kube - proxy 代理
? ?kube - proxy 代理對抽象的應用地址的訪問,服務提供了一種訪問一群 pod 的途徑,kube - proxy 負責為服務提供集群內部的服務發現和應用的負載均衡(通常利用 iptables 規則),實現服務到 pod 的路由和轉發,此方式通過創建一個虛擬的 IP 來實現,客戶端能夠訪問此 IP,并能夠將服務透明地代理至 pod。
-
它是網絡組件,在網絡中起著至關重要的作用。
-
它管理 IP 轉換和路由。
-
它是運行在集群中每個節點上的網絡代理。
-
它維護節點上的網絡規則,這些網絡規則允許從集群內部或外部與 Pod 進行網絡通信。
-
它確保每個 Pod 獲取唯一的 IP 地址。
-
這使得 pod 中的所有容器共享一個 IP 成為可能。
-
它促進了 Kubernetes 網絡服務和服務中所有 pod 的負載平衡。
-
它處理單個主機子網并確保服務可供外部各方使用。
3.kubernetes網絡插件
? ?CNI(容器網絡接口)是一個云原生計算基金會項目,它包含了一些規范和庫,用于編寫在 Linux 容器中配置網絡接口的一系列插件。CNI 只關注容器的網絡連接,并在容器被刪除時移除所分配的資源。Kubernetes 使用 CNI 作為網絡提供商和 Kubernetes Pod 網絡之間的接口。
(1) Flannel 網絡
? ? 由 CoreoSk 開發的一個項目,很多部署工具或者 k8s 的發行版都是默認安裝,flannel 是可以用集群現有的 etcd,利用 api 方式存儲自身狀態信息,不需要專門的數據存儲,是配置第三層的 ipv4 Overlay 網絡,在此網絡內,每個節點一個子網,用于分配 ip 地址,配置 pod 時候,節點上的網橋接口會為每個新容器分配一個地址,同一主機中的 pod 可以使用網橋通信,不同主機的 pod 流量封裝在 udp 數據包中,路由到目的地。
? ? Flannel 通過每個節點上啟動一個 flnnel 的進程,負責給每一個節點上的子網劃分、將子網網段等信息保存至 etcd,具體的報文轉發是后端實現,在啟動時可以通過配置文件指定不同的后端進行通信,目前有 UDP、VXLAN、host-gateway 三種,VXLAN 是官方推薦,因為性能良好,不需人工干預。UDP、VXLAN 是基于三層網絡即可實現,host-gateway 模式需要集群所有機器都在同一個廣播域、就是需要在二層網絡在同一個交換機下才能實現,host-gateway 用于對網絡性能要求較高的常見,需要基礎網絡架構支持,UDP 用于測試或者不支持 VXLAN 的 linux 內核。反正一般小規模集群是完全夠用的,直到很多功能無法提供時在考慮其他插件。
(2) Calico 網絡
? ?雖然 falnnel 很好,但是 calico 因為其性能、靈活性都好而備受歡迎,calico 的功能更加全面,不但具有提供主機和 pod 間網絡通信的功能,還有網絡安全和管理的功能,而且在 CNI 框架之內封裝了 calico 的功能,calico 還能與服務網絡技術 Istio 集成,不但能夠更加清楚的看到網絡架構也能進行靈活的網絡策略的配置,calico 不使用 Overlay 網絡,配置在第三層網絡,使用 BGP 路由協議在主機之間路由數據包,意味著不需要包裝額外的封裝層。主要點在網絡策略配置這一點,可以提高安全性和網絡環境的控制。
? ?如果集群規模較大,選擇 calico 沒錯,當然 calico 提供長期支持,對于一次配置長期使用的目的來說,是個很好的選擇。
四.kubeadm快速安裝kubernetes集群
主機名 | IP 地址 | 操作系統 | 主要軟件 |
---|---|---|---|
k8s-master | 192.168.10.101 | CentOS7.9 兩核、4G | Docker CE, Kube-apiserver, Kube-controller-manager, Kube-scheduler, Kubelet, Etcd, Kube-proxy |
k8s-node01 | 192.168.10.102 | CentOS7.9 兩核、2G | Docker CE , Kubectl , Kube-proxy,Calico |
k8s-node02 | 192.168.10.103 | CentOS7.9 兩核、2G | Docker CE , Kubectl , Kube-proxy,Calico |
1. 部署docker環境(此步驟在三個節點都執行)
(1)關閉防火墻
systemctl stop firewalld? ?
systemctl disable firewalld
(2)禁用selinux
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
setenforce 0?
?(3)安裝docker
下載docker的repo文件
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-cd.repo
替換倉庫地址
sed -i 's/$releasever/8/g' /etc/yum.repos.d/docker-ce.repo
sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/docker-ce.repo
更新索引文件并安裝docker
dnf clean all
dnf makecache
dnf -y install docker-ce?
添加國內鏡像站
mkdir /etc/docker/
vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
? "registry-mirrors": [
? ? "https://docker.m.daocloud.io",
? ? "https://docker.imgdb.de",
? ? "https://docker-0.unsee.tech",
? ? "https://docker.hlmirror.com"
? ]
}
開啟docker服務
systemctl daemon-reload?
systemctl restart docker?
systemctl enable docker?
docker version
優化內核參數?
vim /etc/sysctl.conf?
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
?sysctl -p
?2.部署kubernetes集群
(1)配置三臺主機的主機名
主機一
hostnamectl set-hostname k8s-master?
bash
主機二?
hostnamectl set-hostname k8s-node01?
bash
主機三
hostnamectl set-hostname k8s-node02
bash
?(2)在三臺主機上綁定hosts
vim /etc/hosts
192.168.10.101? ? ? ? k8s-master
192.168.10.102? ? ? ? k8s-node01
192.168.10.103? ? ? ? k8s-node02?
(3)關閉交換分區
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab?
(4)配置kubernetes的yum源
操作節點:k8s-master,k8s-node01,k8s-node02
?vim??/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
?dnf clean all
(5)安裝kubelet,kubeadm和kubectl
?操作節點:k8s-master,k8s-node01,k8s-node02
dnf -y install kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
(6)kubelet設置開機啟動
操作節點:k8s-master,k8s-node01,k8s-node02
systemctl enable kubelet
?(7)生成初始化配置文件
操作節點:k8s-master
kubeadm config print init-defaults > init-config.yaml
(8)修改初始化配置文件
?操作節點:k8s-master
vim init-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:- groups:
? - system:bootstrappers:kubeadm:default-node-token
? token: abcdef.0123456789abcdef
? ttl: 24h0m0s
? usages:
? - signing
? - authentication
kind: InitConfiguration
localAPIEndpoint:
? advertiseAddress: 192.168.10.101
? bindPort: 6443
nodeRegistration:
? criSocket: /var/run/dockershim.sock
? name: k8s-master
? taints: nullapiServer:
? timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
? type: CoreDNS
etcd:
? local:
? ? dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.23.0networking:
? dnsDomain: cluster.local
? serviceSubnet: 10.96.0.0/12
? podSubnet: 10.244.0.0/16
scheduler: {}
?(9)拉取所需鏡像
?操作節點:k8s-master
kubeadm config images list --config init-config.yaml
(10)?初始化k8s-master
?操作節點:k8s-master
kubeadm init --config=init-config.yaml
(11)復制配置文件到用戶的home目錄
?操作節點:k8s-master
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
?(12)node節點加入集群
kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef \
? --discovery-token-ca-cert-hash \
sha256:8b17b7d607ab7f79c2249c58d74525368bbb15ad884c365aaa1a968b9833d107?
?(13)在k8s-master節點設置環境變量并查看節點信息
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
kubectl get nodes
NAME ? ? ? ? STATUS ? ? ROLES ? ?AGE ? VERSION
k8s-master ? NotReady ? master ? 13m ? v1.19.4
k8s-node01 ? NotReady ? <none> ? 2m30s v1.19.4
k8s-node02 ? NotReady ? <none> ? 21s ? v1.19.4kubectl get pod -A
NAMESPACE ? ? NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? READY ? STATUS ? ?RESTARTS ? AGE
kube-system ? coredns-6d8c4cb4d-7swl9 ? ? ? ? ? ? ? ? ? ?0/1 ? ? Pending ? 0 ? ? ? ? ?3m58s
kube-system ? coredns-6d8c4cb4d-rrlpp ? ? ? ? ? ? ? ? ? ?0/1 ? ? Pending ? 0 ? ? ? ? ?3m58s
kube-system ? etcd-k8s-master ? ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 1 (85s ago) ? 4m11s
kube-system ? kube-apiserver-k8s-master ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 1 (75s ago) ? 4m12s
kube-system ? kube-controller-manager-k8s-master ? ? ? ? 1/1 ? ? Running ? 1 (84s ago) ? 4m12s
kube-system ? kube-proxy-5hgbq ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 1 (82s ago) ? 3m54s
kube-system ? kube-proxy-sdq9b ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 1 (79s ago) ? 3m46s
kube-system ? kube-proxy-txdcr ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1 ? ? Running ? 1 (85s ago) ? 3m58s
kube-system ? kube-scheduler-k8s-master ? ? ? ? ? ? ? ? ?1/1 ? ? Running?
?(14)部署calico網絡插件
?kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
[root@k8s-master ~]# kubectl create -f calico.yamlkubectl get nodes
NAME ? ? ? ? STATUS ? ROLES ? ? ? ? ? ? ? ? ?AGE ? VERSION
k8s-master ? Ready ? ?control-plane,master ? 22h ? v1.23.0
k8s-node01 ? Ready ? ?<none> ? ? ? ? ? ? ? ? 22h ? v1.23.0
k8s-node02 ? Ready ? ?<none> ? ? ? ? ? ? ? ? 22h ? v1.23.0kubectl get pod --all-namespaces
?五. Metrics-server部署
1.修改yaml文件并安裝
vim components.yaml
spec:
? containers:
? - args:
? ? - --kubelet-insecure-tls ?##添加
? ? - --cert-dir=/tmp
? ? - --secure-port=4443
? ? - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
? ? - --kubelet-use-node-status-port? ? - --metric-resolution=15s
? ? image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.3
kubectl create -f components.yaml
2. 測試安裝結果
kubectl top node
NAME ? ? ? ? CPU(cores) ? CPU% ? MEMORY(bytes) ? MEMORY% ??
k8s-master ? 99m ? ? ? ? ?4% ? ? 1201Mi ? ? ? ? ?31% ? ? ??
k8s-node01 ? 57m ? ? ? ? ?2% ? ? 1597Mi ? ? ? ? ?42% ? ? ??
k8s-node02 ? 37m ? ? ? ? ?3% ? ? 616Mi ? ? ? ? ? 16% ? ? ??kubectl top pod -A
NAMESPACE ? ? NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CPU(cores) ? MEMORY(bytes) ??
kube-system ? calico-kube-controllers-64cc74d646-vtjgc ? 1m ? ? ? ? ? 27Mi ? ? ? ? ? ?
kube-system ? calico-node-jswkq ? ? ? ? ? ? ? ? ? ? ? ? ?17m ? ? ? ? ?156Mi ? ? ? ? ??
kube-system ? calico-node-kfcr7 ? ? ? ? ? ? ? ? ? ? ? ? ?18m ? ? ? ? ?169Mi ? ? ? ? ??
kube-system ? calico-node-sr28f ? ? ? ? ? ? ? ? ? ? ? ? ?15m ? ? ? ? ?161Mi ? ? ? ? ??
kube-system ? coredns-6d8c4cb4d-gggss ? ? ? ? ? ? ? ? ? ?2m ? ? ? ? ? 64Mi ? ? ? ? ? ?
kube-system ? coredns-6d8c4cb4d-l6plx ? ? ? ? ? ? ? ? ? ?2m ? ? ? ? ? 21Mi ? ? ? ? ? ?
kube-system ? etcd-k8s-master ? ? ? ? ? ? ? ? ? ? ? ? ? ?14m ? ? ? ? ?64Mi ? ? ? ? ? ?
kube-system ? kube-apiserver-k8s-master ? ? ? ? ? ? ? ? ?37m ? ? ? ? ?361Mi ? ? ? ? ??
kube-system ? kube-controller-manager-k8s-master ? ? ? ? 9m ? ? ? ? ? 55Mi ? ? ? ? ? ?
kube-system ? kube-proxy-4vn4c ? ? ? ? ? ? ? ? ? ? ? ? ? 1m ? ? ? ? ? 23Mi ? ? ? ? ? ?
kube-system ? kube-proxy-5dgbm ? ? ? ? ? ? ? ? ? ? ? ? ? 1m ? ? ? ? ? 69Mi ? ? ? ? ? ?
kube-system ? kube-proxy-tbqkz ? ? ? ? ? ? ? ? ? ? ? ? ? 1m ? ? ? ? ? 24Mi ? ? ? ? ? ?
kube-system ? kube-scheduler-k8s-master ? ? ? ? ? ? ? ? ?3m ? ? ? ? ? 25Mi ? ? ? ? ? ?
kube-system ? metrics-server-66bdc46d86-4mfqw ? ? ? ? ? ?3m ? ? ? ? ? 25Mi ??