1. 环境准备
1.1 版本兼容性
- Kubernetes 版本: 1.18.0
- kube-prometheus 版本: release-0.6 (与 Kubernetes 1.18 兼容)
1.2 安装必要工具
2. 部署 kube-prometheus
2.1 下载项目文件
1 2
| git clone -b release-0.6 https://github.com/prometheus-operator/kube-prometheus.git cd kube-prometheus/manifests
|
2.2 整理 YAML 文件
1 2 3 4 5 6 7 8 9 10 11
| mkdir -p serviceMonitor prometheus adapter node-exporter blackbox \ kube-state-metrics grafana alertmanager operator other/{nfs-storage,ingress}
mv alertmanager-* alertmanager/ && \ mv blackbox-exporter-* blackbox/ && \ mv grafana-* grafana/ && \ mv kube-state-metrics-* kube-state-metrics/ && \ mv node-exporter-* node-exporter/ && \ mv prometheus-adapter-* adapter/ && \ mv prometheus-* prometheus/ && \ mv kubernetes-serviceMonitor* serviceMonitor/
|
2.3 替换镜像源为国内源
1 2 3 4 5
| sed -i 's/quay.io/quay.mirrors.ustc.edu.cn/g' `grep "quay.io" -rl *`
grep -rn 'image: ' *
|
3. 配置服务访问方式
3.1 修改 Prometheus 服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| apiVersion: v1 kind: Service metadata: labels: app: prometheus name: prometheus-k8s namespace: monitoring spec: type: NodePort ports: - name: web port: 9090 targetPort: web nodePort: 30080 selector: app: prometheus prometheus: k8s
|
3.2 修改 Grafana 服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| apiVersion: v1 kind: Service metadata: labels: app: grafana name: grafana namespace: monitoring spec: type: NodePort ports: - name: http port: 3000 targetPort: http nodePort: 30081 selector: app: grafana
|
3.3 修改 Alertmanager 服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| apiVersion: v1 kind: Service metadata: labels: alertmanager: main name: alertmanager-main namespace: monitoring spec: type: NodePort ports: - name: web port: 9093 targetPort: web nodePort: 30082 selector: alertmanager: main app: alertmanager
|
4. 部署监控组件
4.1 安装 CRD 和 Operator
1 2 3 4
| kubectl create -f setup/
watch kubectl get pod -n monitoring
|
4.2 部署完整监控栈
1 2 3 4
| kubectl create -f .
watch kubectl get pod -n monitoring
|
5. 访问监控界面
| 服务 |
访问地址 |
默认端口 |
| Prometheus |
http://<节点IP>:30080 |
30080 |
| Grafana |
http://<节点IP>:30081 |
30081 |
| Alertmanager |
http://<节点IP>:30082 |
30082 |
6. 添加 Basic Auth 认证 (可选)
参考文档: Prometheus-operator 添加 Basic Auth
7. 注意事项
- 镜像下载可能需要较长时间,请耐心等待
- 如果镜像下载失败,可尝试从 Docker Hub 手动下载
- 确保节点防火墙开放了 30080-30082 端口
- 生产环境建议配置 Ingress 和 TLS 证书
8. 组件说明
- Prometheus Operator: 负责管理 Prometheus 实例
- Prometheus: 主监控系统
- Grafana: 可视化仪表板
- Alertmanager: 告警管理
- kube-state-metrics: Kubernetes 资源指标收集
- node-exporter: 节点级指标收集