采用文章大佬–为了提高自己的k8s熟练,按照这位大佬的文章做了一遍
https://www.yuque.com/cuiliang-s1qrv/k8s/yyiswl

https://github.com/kubernetes-sigs/metrics-server
这个是k8s在1.7的新特性,如果是1.16版本的可以不用添加,1.17以后要添加。这个参数的作用是Aggregation允许在不修改Kubernetes核心代码的同时扩展Kubernetes API。
master机器:ps -ef |grep apiserver|grep 'enable-aggregator-routing=true'
vim /etc/kubernetes/manifests/kube-apiserver.yaml
- command:
- kube-apiserver
…………
- --enable-aggregator-routing=true //加入这一行
# 保存后apiserver会自动重启

我这里报错了,就没有修改这个文件

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

vim components.yaml
#自定义添加--kubelet-insecure-tls 跳过 TLS 认证,否则会出现 x509 的认证问题
#自定义添加--kubelet-preferred-address-types=InternalIP 使用 Node IP 进行通信。
kubectl apply -f components.yaml
# kubectl api-versions | grep metrics
# kubectl get pods -n kube-system -l k8s-app=metrics-server
[root@tiaoban ~]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 422m 10% 1471Mi 40%
k8s-work1 268m 6% 1197Mi 33%
k8s-work2 239m 5% 1286Mi 35%
k8s-work3 320m 8% 1091Mi 30%

git clone https://github.com/kubernetes/kube-state-metrics.git
cd kube-state-metrics/examples/standard/

vim service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 2.2.0
name: kube-state-metrics
namespace: kube-system
annotations:
prometheus.io/scrape: "true" ##添加此参数,允许prometheus自动发现
kubectl apply -f .
[root@tiaoban standard]# kubectl get pod -n kube-system -l app.kubernetes.io/name=kube-state-metrics
NAME READY STATUS RESTARTS AGE
kube-state-metrics-bb59558c8-cx9pz 1/1 Running 0 1m
[root@tiaoban ~]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 422m 10% 1471Mi 40%
k8s-work1 268m 6% 1197Mi 33%
k8s-work2 239m 5% 1286Mi 35%
k8s-work3 320m 8% 1091Mi 30%
6% 1197Mi 33%
k8s-work2 239m 5% 1286Mi 35%
k8s-work3 320m 8% 1091Mi 30%