k8s-7部署kube-state-metrics监控组件

k8s-7部署kube-state-metrics监控组件

采用文章大佬–为了提高自己的k8s熟练,按照这位大佬的文章做了一遍

https://www.yuque.com/cuiliang-s1qrv/k8s/yyiswl

image-20220729152412645

一、metrics-server(HPA)

1. 版本说明

https://github.com/kubernetes-sigs/metrics-server

2. Aggregator开启

这个是k8s在1.7的新特性,如果是1.16版本的可以不用添加,1.17以后要添加。这个参数的作用是Aggregation允许在不修改Kubernetes核心代码的同时扩展Kubernetes API。

  • 查询是否开启:
master机器:ps -ef |grep apiserver|grep 'enable-aggregator-routing=true'
  • 开启方法:要在master机器上执行
vim /etc/kubernetes/manifests/kube-apiserver.yaml

- command:
    - kube-apiserver
    …………
    - --enable-aggregator-routing=true  //加入这一行
# 保存后apiserver会自动重启

image-20220729152751753

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

3. 部署

  1. 下载yaml文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
  1. 修改配置
    image-20220729153236063
vim components.yaml
#自定义添加--kubelet-insecure-tls 跳过 TLS 认证,否则会出现 x509 的认证问题
#自定义添加--kubelet-preferred-address-types=InternalIP 使用 Node IP 进行通信。
  1. 创建资源
kubectl apply -f components.yaml
  1. 检验相应的API群组metrics.k8s.io是否出现在Kubernetes集群的API群组列表中
# kubectl api-versions | grep metrics
  1. 确认相关的Pod对象运行正常
# kubectl get pods -n kube-system -l k8s-app=metrics-server
  1. 使用kubectl top node查看结果
[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% 

二、kube-state-metrics部署(prometheus)

  • 版本依赖

image-20220729154506185

  • 克隆项目至本地
git clone https://github.com/kubernetes/kube-state-metrics.git
cd kube-state-metrics/examples/standard/

image-20220729160848176

  • 修改service,允许prometheus自动发现
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
  • 使用kubectl top node查看结果
[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%


猜你喜欢

转载自blog.csdn.net/tianmingqing0806/article/details/126146449