Helm 公开普罗米修斯仪表板

Helm expose prometheus dashboard

我将 Prometheus using helm 安装到 Kubernets 集群(CentOS 8 虚拟机)中并希望使用虚拟机 IP 从集群外部访问仪表板

kubectl get svc -n monitoring
NAME                                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
alertmanager-operated                     ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP   27m
prometheus-grafana                        ClusterIP   10.98.154.200    <none>        80/TCP                       27m
prometheus-kube-state-metrics             ClusterIP   10.109.183.131   <none>        8080/TCP                     27m
prometheus-operated                       ClusterIP   None             <none>        9090/TCP                     27m
prometheus-prometheus-node-exporter       ClusterIP   10.101.171.235   <none>        30206/TCP                    27m
prometheus-prometheus-oper-alertmanager   ClusterIP   10.109.205.136   <none>        9093/TCP                     27m
prometheus-prometheus-oper-operator       ClusterIP   10.111.243.35    <none>        8080/TCP,443/TCP             27m
prometheus-prometheus-oper-prometheus     ClusterIP   10.106.76.22     <none>        9090/TCP                     27m

我需要公开 prometheus-prometheus-oper-prometheus 在端口 9090 上工作的服务,以便使用 NodePort

从外部在端口 30000 上访问

http://Kubernetes_VM_IP:30000

所以我创建了另一个服务:但它失败了 services.yaml:

apiVersion: v1
kind: Service
metadata:
  name: prometheus-service
  namespace: monitoring
  annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port:   '9090'
spec:
  selector:
    app: prometheus-operator-prometheus
  type: NodePort
  ports:
    - port: 9090
      nodePort: 30000
      protocol: TCP


kubectl describe svc prometheus-prometheus-oper-prometheus -n monitoring
Name:              prometheus-prometheus-oper-prometheus
Namespace:         monitoring
Labels:            app=prometheus-operator-prometheus
                   chart=prometheus-operator-8.12.2
                   heritage=Helm
                   release=prometheus
                   self-monitor=true
Annotations:       <none>
Selector:          app=prometheus,prometheus=prometheus-prometheus-oper-prometheus
Type:              ClusterIP
IP:                10.106.76.22
Port:              web  9090/TCP
TargetPort:        9090/TCP
Endpoints:         10.32.0.7:9090
Session Affinity:  None
Events:            <none>

在安装过程中重新创建了 prometheus 并指定了节点端口:

helm install prometheus stable/prometheus-operator --namespace monitoring --set prometheus.service.nodePort=30000 --set prometheus.service.type=NodePort