作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210922013357/
相关话题:https://www.cnsre.cn/tags/kubernetes/
K8S 使用 kubectl top 看K8S监控
kubectl top 是基础命令,但是需要部署配套的组件才能获取到监控值
部署 metric-server
-
Kubernetes Metrics Server
是Cluster
的核心监控数据的聚合器,kubeadm
默认是不部署的。 -
Metrics Server
供Dashboard
等其他组件使用,是一个扩展的APIServer
,依赖于API Aggregator
。所以,在安装Metrics Server
之前需要先在kube-apiserver
中开启API Aggregator
。 -
Metrics API 只可以查询当前的度量数据,并不保存历史数据。
-
Metrics API URI
为/apis/metrics.k8s.io/
,在k8s.io/metrics
下维护。 -
必须部署
metrics-server
才能使用该API
,metrics-server
通过调用kubelet Summary API
获取数据. -
不指定pod 名称,则显示命名空间下所有 pod,–containers可以显示 pod 内所有的container
-
指标含义:
-
和k8s中的request、limit一致,CPU单位100m=0.1 内存单位1Mi=1024Ki
-
pod的内存值是其实际使用量,也是做limit限制时判断oom的依据。pod的使用量等于其所有业务容器的总和,不包括 pause 容器,值等于cadvisr中的container_memory_working_set_bytes指标
-
node的值并不等于该node 上所有 pod 值的总和,也不等于直接在机器上运行 top 或 free 看到的值
要求
注意:使用 Metrics Server 有必备两个条件:
- API Server 启用 Aggregator Routing 支持
- API Server 能访问 Metrics Server Pod IP
- 启用API Aggregator
安装 metric-server
下载yaml文件
可以通过运行以下命令下载最新的 Metrics Server 版本:
|
|
兼容性:
指标服务器 | 指标 API 组/版本 | 支持的 Kubernetes 版本 |
---|---|---|
0.6.x | metrics.k8s.io/v1beta1 | *1.19+ |
0.5.x | metrics.k8s.io/v1beta1 | *1.8+ |
0.4.x | metrics.k8s.io/v1beta1 | *1.8+ |
0.3.x | metrics.k8s.io/v1beta1 | 1.8-1.21 |
- 对于 <1.16 需要
--authorization-always-allow-paths=/livez,/readyz
修改镜像地址
国内无法下载 k8s.gcr.io/metrics-server/metrics-server:v0.4.1
镜像
需要修改为一下镜像地址
|
|
添加 –kubelet-insecure-tls参数
|
|
部署metrics-server服务
|
|
查看状态
|
|
测试
|
|
作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210922013357/
相关话题:https://www.cnsre.cn/tags/kubernetes/