metrics-server:
用于监测node,pod等的CPU,内存使用情况。
官方:GitHub
一、开启聚合层
[root@master1 ~]# ll /etc/kubernetes/pki/
total 56
-rw-r--r-- 1 root root 1220 Jul 25 16:09 apiserver.crt
-rw-r--r-- 1 root root 1090 Jul 25 16:09 apiserver-etcd-client.crt
-rw------- 1 root root 1679 Jul 25 16:09 apiserver-etcd-client.key
-rw------- 1 root root 1675 Jul 25 16:09 apiserver.key
-rw-r--r-- 1 root root 1099 Jul 25 16:09 apiserver-kubelet-client.crt
-rw------- 1 root root 1675 Jul 25 16:09 apiserver-kubelet-client.key
-rw-r--r-- 1 root root 1025 Jul 25 16:09 ca.crt
-rw------- 1 root root 1679 Jul 25 16:09 ca.key
drwxr-xr-x 2 root root 162 Jul 25 16:09 etcd
-rw------- 1 root root 1679 Jul 25 16:09 sa.key
-rw------- 1 root root 451 Jul 25 16:09 sa.pub
## 以下几个文件
-rw-r--r-- 1 root root 1038 Jul 25 16:09 front-proxy-ca.crt
-rw------- 1 root root 1675 Jul 25 16:09 front-proxy-ca.key
-rw-r--r-- 1 root root 1058 Jul 25 16:09 front-proxy-client.crt
-rw------- 1 root root 1675 Jul 25 16:09 front-proxy-client.key
修改apiserver文件,新增配置
[root@master1 ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml
········
- --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
- --requestheader-allowed-names=aggregator
- --requestheader-extra-headers-prefix=X-Remote-Extra-
- --requestheader-group-headers=X-Remote-Group
- --requestheader-username-headers=X-Remote-User
- --runtime-config=api/all=true
- --enable-aggregator-routing=true
······
重启
[root@master1 ~]# systemctl restart kubelet.service
二、下载部署文件
#百度盘
链接:https://pan.baidu.com/s/1hJUOSaBWpwkSGTSU2mu4Iw
提取码:x951
#GitHub
https://github.com/kubernetes-sigs/metrics-server/tree/v0.3.6
git clone git@github.com:kubernetes-sigs/metrics-server.git
三、修改对应文件,添加和修改
[root@master1 ~]# cd yml/metrics/metrics/metrics-server-0.3.6/deploy/1.8+/
[root@master1 1.8+]# vim metrics-server-deployment.yaml
······
30 - name: metrics-server
## 修改国内镜像
31 image: registry.cn-hangzhou.aliyuncs.com/ljck8s/metrics-server-amd64:v0.3.6
32 imagePullPolicy: IfNotPresent
33 # 添加command
command:
34 - /metrics-server
35 - --metric-resolution=30s
36 - --kubelet-insecure-tls
37 - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
·····
四、部署
[root@master1 1.8+]# kubectl apply -f .
[root@master1 1.8+]# kubectl -n kube-system get pods -l k8s-app=metrics-server
NAME READY STATUS RESTARTS AGE
metrics-server-55fd55578c-g6rpc 1/1 Running 1 49m
[root@master1 1.8+]# kubectl -n kube-system logs -l k8s-app=metrics-server -f
五、查看资源监控
[root@master1 1.8+]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
master1 252m 6% 1471Mi 18%
node1 65m 1% 1379Mi 23%
node2 60m 1% 1170Mi 19%
[root@master1 1.8+]# kubectl top pod --all-namespaces
NAMESPACE NAME CPU(cores) MEMORY(bytes)
cattle-system cattle-cluster-agent-f8cf7b4c4-4gqc8 2m 72Mi
cattle-system cattle-node-agent-2w574 1m 25Mi
cattle-system cattle-node-agent-8km6q 1m 25Mi
cattle-system cattle-node-agent-s54gr 1m 31Mi
kube-system calico-node-fgqk4 17m 31Mi
kube-system calico-node-j26hq 33m 30Mi
kube-system calico-node-v6cw6 16m 32Mi
kube-system coredns-7ff77c879f-s7w8f 3m 11Mi
kube-system coredns-7ff77c879f-tpqjb 4m 11Mi
kube-system etcd-master1 24m 65Mi
kube-system kube-apiserver-master1 73m 375Mi
kube-system kube-controller-manager-master1 27m 45Mi
kube-system kube-proxy-4wmwk 1m 12Mi
kube-system kube-proxy-hn97q 1m 14Mi
kube-system kube-proxy-qwj2w 1m 12Mi
kube-system kube-scheduler-master1 5m 16Mi
kube-system metrics-server-55fd55578c-g6rpc 1m 11Mi
kube-system traefik-ingress-controller-bpvgj 3m 17Mi
kube-system traefik-ingress-controller-cjb9k 3m 17Mi
kube-system traefik-ingress-controller-xr5kn 7m 18Mi
六、部署METRICS-SERVER时遇到的问题
[root@master1 ~]# kubectl top node
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)
修改apiserver文件(在第一步,开启聚合层)
查看日志报错:
net/http: TLS handshake timeout
修改[root@master1 certs]# cat /etc/docker/daemon.json
将registry-mirrors中 http的镜像加速源去掉即可