背景说明
想查看kubernetes集群每个节点的pod的CPU负载、内存负载、可以通过安装监控实现
解决方案
命令查看
[root@cka-master ~]# kubectl top poderror: Metrics API not available[root@cka-master ~]#
监控安装
开源地址
https://github.com/kubernetes-sigs/metrics-server
版本兼容
集群版本
[root@cka-master ~]# kubectl versionClient Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.7", GitCommit:"b56e432f2191419647a6a13b9f5867801850f969", GitTreeState:"clean", BuildDate:"2022-02-16T11:50:27Z", GoVersion:"go1.16.14", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.7", GitCommit:"b56e432f2191419647a6a13b9f5867801850f969", GitTreeState:"clean", BuildDate:"2022-02-16T11:43:55Z", GoVersion:"go1.16.14", Compiler:"gc", Platform:"linux/amd64"}[root@cka-master ~]#
文件下载

[root@cka-master ~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml
查看文件components.yaml
132 spec:133 containers:134 - args:135 - --cert-dir=/tmp136 - --secure-port=4443137 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname138 - --kubelet-use-node-status-port139 - --metric-resolution=15s140 image: k8s.gcr.io/metrics-server/metrics-server:v0.6.1141 imagePullPolicy: IfNotPresent
由于国内网络无法下载替换image,使用阿里云镜像中心

即替换文件内容如下
132 spec:133 containers:134 - args:135 - --cert-dir=/tmp136 - --secure-port=4443137 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname138 - --kubelet-use-node-status-port139 - --metric-resolution=15s- --kubelet-insecure-tls # 加上该启动参数,解决客户端证书问题140 image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1 # 这一行替换镜像141 imagePullPolicy: IfNotPresent
文件应用
[root@cka-master ~]# kubectl apply -f components.yamlserviceaccount/metrics-server createdclusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader createdclusterrole.rbac.authorization.k8s.io/system:metrics-server createdrolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader createdclusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator createdclusterrolebinding.rbac.authorization.k8s.io/system:metrics-server createdservice/metrics-server createddeployment.apps/metrics-server createdapiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created[root@cka-master ~]#[root@cka-master ~]# kubectl get pod -n kube-system | grep metrics-servermetrics-server-6f796dd456-4xqqv 1/1 Running 0 48s[root@cka-master ~]#
监控查看
查看pod
[root@cka-master ~]# kubectl get podNo resources found in default namespace.[root@cka-master ~]# kubectl get pod -ANAMESPACE NAME READY STATUS RESTARTS AGEkube-system calico-kube-controllers-6fd7b9848d-27rpd 1/1 Running 10 (38d ago) 51dkube-system calico-node-4dccw 1/1 Running 4 (38d ago) 51dkube-system calico-node-5mldl 1/1 Running 4 (38d ago) 51dkube-system calico-node-d7vx7 1/1 Running 4 (38d ago) 51dkube-system coredns-7f6cbbb7b8-d874v 1/1 Running 4 (38d ago) 50dkube-system coredns-7f6cbbb7b8-vw5jc 1/1 Running 4 (38d ago) 52dkube-system etcd-cka-master 1/1 Running 18 (38d ago) 52dkube-system kube-apiserver-cka-master 1/1 Running 18 (38d ago) 52dkube-system kube-controller-manager-cka-master 1/1 Running 11 (38d ago) 52dkube-system kube-proxy-2p82l 1/1 Running 4 (38d ago) 52dkube-system kube-proxy-chq7d 1/1 Running 5 (38d ago) 51dkube-system kube-proxy-xgvjs 1/1 Running 4 (38d ago) 51dkube-system kube-scheduler-cka-master 1/1 Running 11 (38d ago) 52dkube-system metrics-server-6f796dd456-4xqqv 1/1 Running 0 2m21skubernetes-dashboard dashboard-metrics-scraper-c45b7869d-7sprs 1/1 Running 1 (38d ago) 38dkubernetes-dashboard kubernetes-dashboard-79b5779bf4-wfl9j 1/1 Running 1 (38d ago) 38d[root@cka-master ~]#
查看node
[root@cka-master ~]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
cka-master 312m 3% 1600Mi 41%
cka-node1 148m 1% 752Mi 26%
cka-node2 153m 1% 686Mi 23%
