参考引用项目:https://www.cnblogs.com/lfl17718347843/p/14283796.html
Kubernetes Metrics Server 是 Cluster 的核心监控数据的聚合器,kubeadm 默认是不部署的。
确认metrics-server能否被使用的三个前提(验证以及修改方法https://cnblogs.com/lfl17718347843/p/14283796.html):
1)API Server 启用 Aggregator Routing 支持
2)API Server 能访问 Metrics Server Pod IP。否则 API Server 无法访问 Metrics Server
3)启用API Aggregator,API Aggregation 允许在不修改 Kubernetes 核心代码的同时扩展 Kubernetes API,即:将第三方服务注册到 Kubernetes API 中,这样就可以通过 Kubernetes API 来访问第三方服务了,例如:Metrics Server API。注:另外一种扩展 Kubernetes API 的方法是使用 CRD(Custom Resource Definition,自定义资源定义)。
安装地址:
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml
修改components.yaml文件,注意修改镜像位置,添加tls参数
安装
kubectl apply -f components.yaml
查看metrics-server服务状态
[root@k8s-master ~]# kubectl get pod -n kube-system | grep metrics-server
metrics-server-7f4f6575f5-m885f 1/1 Running 0 38s
检查 API Server 是否可以连通 Metrics Server
[root@k8s-master ~]# kubectl describe svc metrics-server -n kube-system
Name: metrics-server
Namespace: kube-system
Labels: k8s-app=metrics-server
Annotations:
Selector: k8s-app=metrics-server
Type: ClusterIP
IP: 10.96.94.79
Port: https 443/TCP
TargetPort: https/TCP
Endpoints: 10.244.169.135:4443
Session Affinity: None
Events:
[root@k8s-master ~]# ping 10.244.169.135
PING 10.244.169.135 (10.244.169.135) 56(84) bytes of data.
64 bytes from 10.244.169.135: icmp_seq=1 ttl=63 time=0.252 ms
64 bytes from 10.244.169.135: icmp_seq=2 ttl=63 time=0.233 ms
^C
--- 10.244.169.135 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.233/0.242/0.252/0.018 ms
执行以下命令,检查节点占用性能情况。
[root@k8s-master ~]# kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 127m 6% 2263Mi 64%
k8s-node1 91m 4% 1955Mi 55%
k8s-node2 93m 4% 1821Mi 51%
查看pod上的占用性能
[root@k8s-master ~]# kubectl top po
NAME CPU(cores) MEMORY(bytes)
front-end-6b7b5c4bfc-d9wnb 0m 1Mi
front-end-6b7b5c4bfc-fck82 0m 1Mi
legacy-app 1m 13Mi
nginx-kusc00401 0m 2Mi