一、metrics-server(HPA使用)
---
1. 版本说明
---
github地址
2. Aggregator开启
---
这个是k8s在1.7的新特性,如果是1.16版本的可以不用添加,1.17以后要添加。这个参数的作用是Aggregation允许在不修改Kubernetes核心代码的同时扩展Kubernetes API。
master机器:ps -ef |grep apiserver|grep ‘enable-aggregator-routing=true’
1 2 3 4 5 6 7 vim /etc/kubernetes/manifests/kube-apiserver.yaml - command: - kube-apiserver ………… - --enable-aggregator-routing=true //加入这一行 # 保存后apiserver会自动重启
3. 部署
---
下载yaml文件
1 wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
修改配置
1 2 3 4 5 6 7 8 9 10 11 12 13 # vim components.yaml apiVersion: apps/v1 kind: Deployment spec: template: metadata: labels: k8s-app: metrics-server spec: containers: - args: - --kubelet-insecure-tls # 跳过 TLS 认证,否则会出现 x509 的认证问题 - --kubelet-preferred-address-types=InternalIP # 使用 Node IP 进行通信。
创建资源
<font style="background-color:rgba(255, 255, 255, 0);">kubectl apply -f components.yaml</font>
检验相应的API群组metrics.k8s.io是否出现在Kubernetes集群的API群组列表中
<font style="background-color:rgba(255, 255, 255, 0);"># kubectl api-versions | grep metrics</font>
确认相关的Pod对象运行正常
<font style="background-color:rgba(255, 255, 255, 0);"># kubectl get pods -n kube-system -l k8s-app=metrics-server</font>
使用kubectl top node查看结果
1 2 3 4 5 6 [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采集数据使用)
---
仓库地址: kubernetes/kube-state-metrics: Add-on agent to generate and expose cluster-level metrics. (github.com)
版本说明
---
kube-state-metrics
Kubernetes client-go Version
v2.9.2
v1.26
v2.10.1
v1.27
v2.11.0
v1.28
v2.12.0
v1.29
v2.13.0
v1.30
main
v1.30
部署
---
1 2 # git clone https://github.com/kubernetes/kube-state-metrics.git # cd kube-state-metrics/examples/standard/
修改service,允许prometheus自动发现
1 2 3 4 5 6 7 8 9 10 11 # 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自动发现
1 2 3 4 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