首先下载: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

K8S之 metrics-server 组件(十八)_API

重新更新 apiserver 配置: [root@master1 ~]# systemctl restart kubelet [root@master1 ~]# kubectl get pods -n kube-system

K8S之 metrics-server 组件(十八)_kubernetes_02

[root@master1 ~]# kubectl apply -f metrics.yaml

 [root@master1 ~]# kubectl get pods -n kube-system | grep metrics

K8S之 metrics-server 组件(十八)_数据_03

测试 kubectl top 命令

[root@master1 ~]# kubectl top pods -n kube-system

K8S之 metrics-server 组件(十八)_API_04

[root@master1 ~]# kubectl top nodes

K8S之 metrics-server 组件(十八)_数据_05