k8s中top指令使用前提:正确安装metrics-server

参考引用项目: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:       <none>
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:            <none>
[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       
相关推荐
探索云原生25 分钟前
基于 Admission Webhook 实现 Pod DNSConfig 自动注入
云原生·kubernetes·go·dns
阿里技术31 分钟前
OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性
阿里云·ai·容器·kubernetes·云计算·openai
-Bin4 小时前
net-http-transport 引发的句柄数(协程)泄漏问题
网络·网络协议·http·云原生·golang
筑梦之路11 小时前
k8s helm部署kafka集群(KRaft模式)——筑梦之路
云原生·容器·kubernetes
宋冠巡11 小时前
Eureka Client 服务消费者(调用API接口)(使用OpenFeign)
云原生·eureka
元气满满的热码式13 小时前
K8S中的Pod生命周期之容器探测
云原生·容器·kubernetes
gs8014017 小时前
用CRD定义未来:解锁机器学习平台的无限可能
kubernetes·crd·operator·kubeflow·机器学习平台·分布式训练任务
言之。21 小时前
【微服务】4、服务保护
微服务·云原生·架构
云妙算1 天前
手把手带你使用Karpenter减少K8s集群资源浪费
后端·kubernetes