helm 部署 prometheus
1、拉取helm charts
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm search repo prometheus-community --versions # 选你想要的版本
helm pull prometheus-community/kube-prometheus-stack --version 75.18.1 --untar
2、修改values文件
# values.yaml
extraArgs:
web.external-url: "http://prometheus.xwk.local" # Prometheus内部感知的对外访问URL,一定要添加不要漏了
···
ingress:
enabled: true # 开启
ingressClassName: "traefik" # 改为自己的ingress类
···
hosts:
- prometheus.xwk.local # 添加访问地址
···
persistentVolume:
enabled: true
storageClass: "nfs-data" # 添加存储类
···
alertmanager:
## If false, alertmanager will not be installed
##
enabled: true
persistence:
size: 2Gi
podSecurityContext:
runAsUser: 65534
runAsNonRoot: true
runAsGroup: 65534
fsGroup: 65534
persistence: # 这个是原来values中没有的,需要自己添加进去,不然storage-prometheus-alertmanager-0会处于pending状态
enabled: true
storageClass: "nfs-data"
accessModes:
- ReadWriteOnce
size: 2Gi
# 安装
[root@master-11 prometheus]# helm install -n prometheus prometheus -f values.yaml .
Release "prometheus" has been install. Happy Helming!
NAME: prometheus
LAST DEPLOYED: Fri Sep 5 23:54:49 2025
NAMESPACE: prometheus
STATUS: deployed
REVISION: 7
TEST SUITE: None
NOTES:
The Prometheus server can be accessed via port 80 on the following DNS name from within your cluster:
prometheus-server.prometheus.svc.cluster.local
For access from outside the cluster, the server URL(s) are:
http://prometheus.xwk.local
The Prometheus alertmanager can be accessed via port 9093 on the following DNS name from within your cluster:
prometheus-alertmanager.prometheus.svc.cluster.local
Get the Alertmanager URL by running these commands in the same shell:
export POD_NAME=$(kubectl get pods --namespace prometheus -l "app.kubernetes.io/name=alertmanager,app.kubernetes.io/instance=prometheus" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace prometheus port-forward $POD_NAME 9093
#################################################################################
###### WARNING: Pod Security Policy has been disabled by default since #####
###### it deprecated after k8s 1.25+. use #####
###### (index .Values "prometheus-node-exporter" "rbac" #####
###### . "pspEnabled") with (index .Values #####
###### "prometheus-node-exporter" "rbac" "pspAnnotations") #####
###### in case you still need it. #####
#################################################################################
The Prometheus PushGateway can be accessed via port 9091 on the following DNS name from within your cluster:
prometheus-prometheus-pushgateway.prometheus.svc.cluster.local
Get the PushGateway URL by running these commands in the same shell:
export POD_NAME=$(kubectl get pods --namespace prometheus -l "app=prometheus-pushgateway,component=pushgateway" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace prometheus port-forward $POD_NAME 9091
For more information on running Prometheus, visit:
https://prometheus.io/
[root@master-11 ~]# kubectl get pods -n prometheus
NAME READY STATUS RESTARTS AGE
prometheus-alertmanager-0 1/1 Running 0 64m
prometheus-kube-state-metrics-65d678f66d-jzlgc 1/1 Running 0 71m
prometheus-prometheus-node-exporter-jwvvb 1/1 Running 0 71m
prometheus-prometheus-node-exporter-kfc7r 1/1 Running 0 71m
prometheus-prometheus-node-exporter-s5ljx 1/1 Running 0 71m
prometheus-prometheus-pushgateway-85f676f677-sdl95 1/1 Running 0 71m
prometheus-server-7599c98758-vxrlp 2/2 Running 0 29m
# 访问web页面
添加hosts解析后访问http://prometheus.xwk.local/