Prometheus Operater 定义了如下的四类自定义资源:
- Prometheus:声明式创建和管理Prometheus Server实例;
- ServiceMonitor:负责声明式的管理监控配置;
- PrometheusRule:负责声明式的管理告警配置;
- Alertmanager:声明式的创建和管理Alertmanager实例。
1、安装kube-prometheus-stack
通过添加prometheus-community仓库把kube-prometheus-stack包下载下来
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update.
2. 修改镜像源
国外镜像源某些镜像无法拉取,我们这里修改prometheus-operator,prometheus,alertmanager,kube-state-metrics,node-exporter的镜像源为国内镜像源
#检查
grep -A 2 'image:' kube-prometheus-stack/*
#批量替换
sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' `grep "quay.io" -rl kube-prometheus-stack/*`
#虽然修改了配置为中科大的镜像源,但是kube-webhook-certgen和kube-state-metrics还是从国外下载。
#我们使用docker pull把kube-webhook-certgen和kube-state-metrics从国内下载,然后打tag来解决。
docker pull registry.aliyuncs.com/google_containers/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6
docker tag registry.aliyuncs.com/google_containers/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6 registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6
docker pull bitnami/kube-state-metrics:2.8.2
docker tag bitnami/kube-state-metrics:2.8.2 registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.8.2
修改grafana的密码
vim kube-prometheus-stack/values.yaml
grafana:
adminPassword: 填写自己的密码
本地安装
helm install -n monitoring --create-namespace prometheus kube-prometheus-stack
配置外部访问地址
这里可以这样配置:
kubectl port-forward --address=0.0.0.0 svc/prometheus-kube-prometheus-prometheus -n monitoring 9090:9090 &
kubectl port-forward --address=0.0.0.0 svc/prometheus-kube-prometheus-alertmanager -n monitoring 9093:9093 &
kubectl port-forward --address=0.0.0.0 svc/prometheus-grafana -n monitoring 3000:80 &
但是这样我遇到了过了几分钟lost connection的问题,所以我直接在外层加了ingress