下载kube-prometheus
| wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.14.0.tar.gz |
安装
| tar -zxvf v0.14.0.tar.gz |
| cd v0.14.0 |
| kubectl apply --server-side -f manifests/setup |
| kubectl wait --for condition=Established --all CustomResourceDefinition --namespace=monitoring |
| kubectl apply -f manifests/ |
查看安装情况
| kubectl get pod,svc -n monitoring -o wide |
删除
| kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup |
参考
| https://www.cnblogs.com/liugp/p/16444580.html |
使用NodePort类型访问
| apiVersion: v1 |
| kind: Service |
| metadata: |
| labels: |
| app.kubernetes.io/component: prometheus |
| app.kubernetes.io/instance: k8s |
| app.kubernetes.io/name: prometheus |
| app.kubernetes.io/part-of: kube-prometheus |
| app.kubernetes.io/version: 2.54.1 |
| name: prometheus-k8s |
| namespace: monitoring |
| spec: |
| type: NodePort |
| ports: |
| - name: web |
| port: 9090 |
| nodePort: 30080 |
| targetPort: web |
| - name: reloader-web |
| port: 8080 |
| targetPort: reloader-web |
| selector: |
| app.kubernetes.io/component: prometheus |
| app.kubernetes.io/instance: k8s |
| app.kubernetes.io/name: prometheus |
| app.kubernetes.io/part-of: kube-prometheus |
| sessionAffinity: ClientIP |
| apiVersion: v1 |
| kind: Service |
| metadata: |
| labels: |
| app.kubernetes.io/component: grafana |
| app.kubernetes.io/name: grafana |
| app.kubernetes.io/part-of: kube-prometheus |
| app.kubernetes.io/version: 11.2.0 |
| name: grafana |
| namespace: monitoring |
| spec: |
| type: NodePort |
| ports: |
| - name: http |
| port: 3000 |
| nodePort: 30081 |
| targetPort: http |
| selector: |
| app.kubernetes.io/component: grafana |
| app.kubernetes.io/name: grafana |
| app.kubernetes.io/part-of: kube-prometheus |
- alertmanager-service.yaml
| apiVersion: v1 |
| kind: Service |
| metadata: |
| labels: |
| app.kubernetes.io/component: alert-router |
| app.kubernetes.io/instance: main |
| app.kubernetes.io/name: alertmanager |
| app.kubernetes.io/part-of: kube-prometheus |
| app.kubernetes.io/version: 0.27.0 |
| name: alertmanager-main |
| namespace: monitoring |
| spec: |
| type: NodePort |
| ports: |
| - name: web |
| port: 9093 |
| nodePort: 30082 |
| targetPort: web |
| - name: reloader-web |
| port: 8080 |
| targetPort: reloader-web |
| selector: |
| app.kubernetes.io/component: alert-router |
| app.kubernetes.io/instance: main |
| app.kubernetes.io/name: alertmanager |
| app.kubernetes.io/part-of: kube-prometheus |
| sessionAffinity: ClientIP |
将service类型由"ClusterIP"改为"NodePort"无法使用nodeip+端口访问服务解决方法.
解决方法是删除monitoring命名空间下的网络策略让其从新加载pod间网络
| kubectl delete networkpolicy |
替换国内可用镜像
| cd 0.14.0/manifests |
| |
| grep -riE 'ghcr.io/|egistry.k8s.io/|quay.io|k8s.gcr|grafana/' * |
grafana/grafana:11.2.0
替换成 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/grafana/grafana:11.2.0
registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0
替换成 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/prometheus-adapter/prometheus-adapter:v0.12.0
ghcr.io/jimmidyson/configmap-reload:v0.13.1
替换成 swr.cn-east-3.myhuaweicloud.com/kubesre/ghcr.io/jimmidyson/configmap-reload:v0.13.1
registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0
替换成 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0
查看自定义资源CRD
| kubectl get customresourcedefinitions.apiextensions.k8s.io | grep monitoring.coreos.com |
定义规则
| https://developer.aliyun.com/article/1046908 |
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
prometheus: k8s
ole: alert-rules
name: cusstom-rule
namespace: monitoring
spec:
groups:
- name: disk
rules:
- alert: diskFree
annotations:
summary: "{{ $labels.job }} 项目实例 {{ $labels.instance }} 磁盘使用率大于 80%"
description: "{{ $labels.instance }} {{ $labels.mountpoint }} 磁盘使用率大于80% (当前的值: {{ $value }}%),请及时处理"
expr: |
(1-(node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint!="/boot"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint!="/boot"}) )*100 > 80
for: 1m
labels:
level: disaster
severity: warning
https://gitee.com/crazywjj/K8S/blob/main/promethues/prometheus告警规则.md
| 参考 |
| |
| https://cloud.tencent.cn/developer/article/2327634 |
| https://docker.aityp.com/manage/add |
| https://github.com/prometheus-operator/kube-prometheus |
| https://www.cnblogs.com/huangjiabobk/p/18126130 |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!