背景说明
想查看kubernetes集群每个节点的pod的CPU负载、内存负载、可以通过安装监控实现
解决方案
命令查看
[root@cka-master ~]# kubectl top pod
error: Metrics API not available
[root@cka-master ~]#
监控安装
开源地址
https://github.com/kubernetes-sigs/metrics-server
版本兼容
集群版本
[root@cka-master ~]# kubectl version
Client 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=/tmp
136 - --secure-port=4443
137 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
138 - --kubelet-use-node-status-port
139 - --metric-resolution=15s
140 image: k8s.gcr.io/metrics-server/metrics-server:v0.6.1
141 imagePullPolicy: IfNotPresent
由于国内网络无法下载替换image,使用阿里云镜像中心
即替换文件内容如下
132 spec:
133 containers:
134 - args:
135 - --cert-dir=/tmp
136 - --secure-port=4443
137 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
138 - --kubelet-use-node-status-port
139 - --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.yaml
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
[root@cka-master ~]#
[root@cka-master ~]# kubectl get pod -n kube-system | grep metrics-server
metrics-server-6f796dd456-4xqqv 1/1 Running 0 48s
[root@cka-master ~]#
监控查看
查看pod
[root@cka-master ~]# kubectl get pod
No resources found in default namespace.
[root@cka-master ~]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-6fd7b9848d-27rpd 1/1 Running 10 (38d ago) 51d
kube-system calico-node-4dccw 1/1 Running 4 (38d ago) 51d
kube-system calico-node-5mldl 1/1 Running 4 (38d ago) 51d
kube-system calico-node-d7vx7 1/1 Running 4 (38d ago) 51d
kube-system coredns-7f6cbbb7b8-d874v 1/1 Running 4 (38d ago) 50d
kube-system coredns-7f6cbbb7b8-vw5jc 1/1 Running 4 (38d ago) 52d
kube-system etcd-cka-master 1/1 Running 18 (38d ago) 52d
kube-system kube-apiserver-cka-master 1/1 Running 18 (38d ago) 52d
kube-system kube-controller-manager-cka-master 1/1 Running 11 (38d ago) 52d
kube-system kube-proxy-2p82l 1/1 Running 4 (38d ago) 52d
kube-system kube-proxy-chq7d 1/1 Running 5 (38d ago) 51d
kube-system kube-proxy-xgvjs 1/1 Running 4 (38d ago) 51d
kube-system kube-scheduler-cka-master 1/1 Running 11 (38d ago) 52d
kube-system metrics-server-6f796dd456-4xqqv 1/1 Running 0 2m21s
kubernetes-dashboard dashboard-metrics-scraper-c45b7869d-7sprs 1/1 Running 1 (38d ago) 38d
kubernetes-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%