hello云胜

技术与生活

0%

使用kube-prometheus监控k8s

使用kube-prometheus部署k8s监控(最新版)-腾讯云开发者社区-腾讯云 (tencent.com)

查看官方的版本对应关系

image-20231204151126271

但是我们公司的集群有一些比较老,还是1.18的

image-20231204151239351

找到了一个以前的对应表。

决定安装release-0.6的版本

1
2
git clone https://github.com/prometheus-operator/kube-prometheus.git
git checkout release-0.6

增加存储配置

kube-prometheus\manifests\prometheus-prometheus.yaml

1
2
3
4
5
6
7
8
9
10
...
version: v2.20.0
retention: 3d
storage:
volumeClaimTemplate:
spec:
storageClassName: nfs-client
resources:
requests:
storage: 5Gi

kube-prometheus\manifests\grafana-deployment.yaml

1
2
3
4
5
6
volumes:
# - emptyDir: {}
# name: grafana-storage
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-data

创建对应的grafana-data pvc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: grafana-data
namespace: monitoring
annotations:
volume.beta.kubernetes.io/storage-class: nfs-client
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: nfs-client

安装

1
2
3
kubectl apply -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl apply -f manifests/

修复kube-scheduler和controller-manager监控异常问题

image-20231205154544527

image-20231205154634646

原本三个都是down的状态。我已经修复了一个。

原因是kube-scheduler和controller-manager部署的时候配置的bind-address是127.0.0.1

现在我们用主机的ip去连,自然是不会成功的。

修改一下bind-address为0.0.0.0就好了

image-20231205155018829

我的kube-scheduler和controller-manager都是静态pod

修改后,从/etc/kubernetes/manifests/移出,稍等几秒再移进来就可以了