首先下载:K8S之 metrics-server 组件
metrics-server 是一个集群范围内的资源数据集和工具,同样的,metrics-server 也只是显示数据,并不提供数据存储服务,主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标,metric-server 收集数据给 k8s 集群内使用,如 kubectl,hpa,scheduler 等 。
1、部署 metrics-server 组件
#把离线镜像压缩包上传到 k8s 的各个节点,按如下方法手动解压:
[root@master1 ~]# ctr images import aliyun-metrics-server-amd64-0-3-6.tar.gz
[root@master1 ~]# ctr images import aliyun-addon.tar.gz
[root@node1 ~]# ctr images import aliyun-metrics-server-amd64-0-3-6.tar.gz
[root@node1 ~]# ctr images import aliyun-addon.tar.gz
[root@node2 ~]# ctr images import aliyun-metrics-server-amd64-0-3-6.tar.gz
[root@node2 ~]# ctr images import aliyun-addon.tar.gz
#部署 metrics-server 服务
#在/etc/kubernetes/manifests 里面改一下 apiserver 的配置
注意:这个是 k8s 在 1.17 的新特性,如果是 1.16 版本的可以不用添加,1.17 以后要添加。这个参数的作用是 Aggregation 允许在不修改 Kubernetes 核心代码的同时扩展 Kubernetes API。
[root@master1~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml
增加如下内容:
- --enable-aggregator-routing=true
重新更新 apiserver 配置: [root@master1 ~]# systemctl restart kubelet [root@master1 ~]# kubectl get pods -n kube-system
[root@master1 ~]# kubectl apply -f metrics.yaml
[root@master1 ~]# kubectl get pods -n kube-system | grep metrics
测试 kubectl top 命令
[root@master1 ~]# kubectl top pods -n kube-system
[root@master1 ~]# kubectl top nodes