K8S 上部署 Prometheus + Grafana

文章目录

      • [一、使用 Helm 安装 Prometheus](#一、使用 Helm 安装 Prometheus)
        • [1. 配置源](#1. 配置源)
        • [2. 下载 prometheus 包](#2. 下载 prometheus 包)
        • [3. 安装 prometheus](#3. 安装 prometheus)
        • [4. 卸载](#4. 卸载)
      • [二、使用 Helm 安装 Grafana](#二、使用 Helm 安装 Grafana)
        • [1. 配置源](#1. 配置源)
        • [2. 安装 grafana](#2. 安装 grafana)
        • [3. 访问](#3. 访问)
        • [4. 卸载](#4. 卸载)

一、使用 Helm 安装 Prometheus

1. 配置源

地址:https://artifacthub.io/packages/helm/prometheus-community/prometheus

powershell 复制代码
# 添加repo
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
"prometheus-community" has been added to your repositories

$ helm repo update prometheus-community
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "prometheus-community" chart repository
Update Complete. ⎈Happy Helming!⎈

$ helm search repo prometheus-community/prometheus
NAME                                              	CHART VERSION	APP VERSION	DESCRIPTION                                       
prometheus-community/prometheus                   	25.24.0      	v2.53.1    	Prometheus is a monitoring system and time seri...
prometheus-community/prometheus-adapter           	4.10.0       	v0.11.2    	A Helm chart for k8s prometheus adapter           
prometheus-community/prometheus-blackbox-exporter 	8.17.0       	v0.25.0    	Prometheus Blackbox Exporter                      
prometheus-community/prometheus-cloudwatch-expo...	0.25.3       	0.15.5     	A Helm chart for prometheus cloudwatch-exporter   
prometheus-community/prometheus-conntrack-stats...	0.5.10       	v0.4.18    	A Helm chart for conntrack-stats-exporter         
prometheus-community/prometheus-consul-exporter   	1.0.0        	0.4.0      	A Helm chart for the Prometheus Consul Exporter   
prometheus-community/prometheus-couchdb-exporter  	1.0.0        	1.0        	A Helm chart to export the metrics from couchdb...
prometheus-community/prometheus-druid-exporter    	1.1.0        	v0.11.0    	Druid exporter to monitor druid metrics with Pr...
prometheus-community/prometheus-elasticsearch-e...	6.0.0        	v1.7.0     	Elasticsearch stats exporter for Prometheus       
prometheus-community/prometheus-fastly-exporter   	0.4.0        	v8.1.0     	A Helm chart for the Prometheus Fastly Exporter   
prometheus-community/prometheus-ipmi-exporter     	0.4.0        	v1.8.0     	This is an IPMI exporter for Prometheus.          
prometheus-community/prometheus-json-exporter     	0.13.0       	v0.6.0     	Install prometheus-json-exporter                  
prometheus-community/prometheus-kafka-exporter    	2.10.0       	v1.7.0     	A Helm chart to export the metrics from Kafka i...
prometheus-community/prometheus-memcached-exporter	0.3.3        	v0.14.4    	Prometheus exporter for Memcached metrics         
prometheus-community/prometheus-modbus-exporter   	0.1.2        	0.4.1      	A Helm chart for prometheus-modbus-exporter       
prometheus-community/prometheus-mongodb-exporter  	3.5.0        	0.40.0     	A Prometheus exporter for MongoDB metrics         
prometheus-community/prometheus-mysql-exporter    	2.5.3        	v0.15.1    	A Helm chart for prometheus mysql exporter with...
prometheus-community/prometheus-nats-exporter     	2.17.0       	0.15.0     	A Helm chart for prometheus-nats-exporter         
prometheus-community/prometheus-nginx-exporter    	0.2.1        	0.11.0     	A Helm chart for the Prometheus NGINX Exporter    
prometheus-community/prometheus-node-exporter     	4.37.0       	1.8.1      	A Helm chart for prometheus node-exporter         
prometheus-community/prometheus-opencost-exporter 	0.1.1        	1.108.0    	Prometheus OpenCost Exporter                      
prometheus-community/prometheus-operator          	9.3.2        	0.38.1     	DEPRECATED - This chart will be renamed. See ht...
prometheus-community/prometheus-operator-admiss...	0.14.0       	0.75.1     	Prometheus Operator Admission Webhook             
prometheus-community/prometheus-operator-crds     	13.0.1       	v0.75.0    	A Helm chart that collects custom resource defi...
prometheus-community/prometheus-pgbouncer-exporter	0.3.0        	v0.8.0     	A Helm chart for prometheus pgbouncer-exporter    
prometheus-community/prometheus-pingdom-exporter  	2.5.0        	20190610-1 	A Helm chart for Prometheus Pingdom Exporter      
prometheus-community/prometheus-pingmesh-exporter 	0.4.0        	v1.2.1     	Prometheus Pingmesh Exporter                      
prometheus-community/prometheus-postgres-exporter 	6.0.1        	v0.15.0    	A Helm chart for prometheus postgres-exporter     
prometheus-community/prometheus-pushgateway       	2.14.0       	v1.9.0     	A Helm chart for prometheus pushgateway           
prometheus-community/prometheus-rabbitmq-exporter 	1.12.0       	v0.29.0    	Rabbitmq metrics exporter for prometheus          
prometheus-community/prometheus-redis-exporter    	6.3.0        	v1.61.0    	Prometheus exporter for Redis metrics             
prometheus-community/prometheus-smartctl-exporter 	0.10.0       	v0.12.0    	A Helm chart for Kubernetes                       
prometheus-community/prometheus-snmp-exporter     	5.5.0        	v0.26.0    	Prometheus SNMP Exporter                          
prometheus-community/prometheus-sql-exporter      	0.1.0        	v0.5.4     	Prometheus SQL Exporter                           
prometheus-community/prometheus-stackdriver-exp...	4.5.1        	v0.15.1    	Stackdriver exporter for Prometheus               
prometheus-community/prometheus-statsd-exporter   	0.13.1       	v0.26.1    	A Helm chart for prometheus stats-exporter        
prometheus-community/prometheus-systemd-exporter  	0.3.0        	0.6.0      	A Helm chart for prometheus systemd-exporter      
prometheus-community/prometheus-to-sd             	0.4.2        	0.5.2      	Scrape metrics stored in prometheus format and ...
prometheus-community/prometheus-windows-exporter  	0.3.1        	0.25.1     	A Helm chart for prometheus windows-exporter
2. 下载 prometheus 包
powershell 复制代码
# 拉包
$ helm pull prometheus-community/prometheus

$ ll
total 88
drwxr-xr-x 2 root   root    4096 Jul 16 03:12 ./
drwxrwxr-x 9 ubuntu ubuntu  4096 Jul 16 03:10 ../
-rw-r--r-- 1 root   root   80137 Jul 16 03:12 prometheus-25.24.0.tgz

# 解包
$ tar -zxvf prometheus-25.24.0.tgz 
prometheus/Chart.yaml
prometheus/Chart.lock
prometheus/values.yaml
prometheus/values.schema.json
prometheus/templates/NOTES.txt
prometheus/templates/_helpers.tpl
prometheus/templates/clusterrole.yaml
prometheus/templates/clusterrolebinding.yaml
prometheus/templates/cm.yaml
prometheus/templates/deploy.yaml
prometheus/templates/extra-manifests.yaml
prometheus/templates/headless-svc.yaml
prometheus/templates/ingress.yaml
prometheus/templates/network-policy.yaml
prometheus/templates/pdb.yaml
prometheus/templates/psp.yaml
prometheus/templates/pvc.yaml
prometheus/templates/rolebinding.yaml
prometheus/templates/service.yaml
prometheus/templates/serviceaccount.yaml
prometheus/templates/sts.yaml
prometheus/templates/vpa.yaml
prometheus/.helmignore
prometheus/README.md
prometheus/ci/01-automount-sa-token-values.yaml
prometheus/ci/02-config-reloader-deployment-values.yaml
prometheus/ci/03-config-reloader-sts-values.yaml
prometheus/ci/04-extra-manifest-values.yaml
prometheus/ci/05-server-deployment-values.yaml
prometheus/ci/06-server-sts-values.yaml
prometheus/ci/07-meta-labels-values.yaml
prometheus/ci/08-sts-pvc-retention-policy-values.yaml
prometheus/ci/09-standalone-deployment-values.yaml
prometheus/ci/10-namespaced-sd-values.yaml
prometheus/ci/11-default-values.yaml
prometheus/charts/alertmanager/Chart.yaml
prometheus/charts/alertmanager/values.yaml
prometheus/charts/alertmanager/values.schema.json
prometheus/charts/alertmanager/templates/NOTES.txt
prometheus/charts/alertmanager/templates/_helpers.tpl
prometheus/charts/alertmanager/templates/configmap.yaml
prometheus/charts/alertmanager/templates/ingress.yaml
prometheus/charts/alertmanager/templates/ingressperreplica.yaml
prometheus/charts/alertmanager/templates/pdb.yaml
prometheus/charts/alertmanager/templates/serviceaccount.yaml
prometheus/charts/alertmanager/templates/serviceperreplica.yaml
prometheus/charts/alertmanager/templates/services.yaml
prometheus/charts/alertmanager/templates/statefulset.yaml
prometheus/charts/alertmanager/templates/tests/test-connection.yaml
prometheus/charts/alertmanager/.helmignore
prometheus/charts/alertmanager/README.md
prometheus/charts/alertmanager/ci/config-reload-values.yaml
prometheus/charts/kube-state-metrics/Chart.yaml
prometheus/charts/kube-state-metrics/values.yaml
prometheus/charts/kube-state-metrics/templates/NOTES.txt
prometheus/charts/kube-state-metrics/templates/_helpers.tpl
prometheus/charts/kube-state-metrics/templates/ciliumnetworkpolicy.yaml
prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml
prometheus/charts/kube-state-metrics/templates/crs-configmap.yaml
prometheus/charts/kube-state-metrics/templates/deployment.yaml
prometheus/charts/kube-state-metrics/templates/extra-manifests.yaml
prometheus/charts/kube-state-metrics/templates/kubeconfig-secret.yaml
prometheus/charts/kube-state-metrics/templates/networkpolicy.yaml
prometheus/charts/kube-state-metrics/templates/pdb.yaml
prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml
prometheus/charts/kube-state-metrics/templates/psp-clusterrole.yaml
prometheus/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml
prometheus/charts/kube-state-metrics/templates/rbac-configmap.yaml
prometheus/charts/kube-state-metrics/templates/role.yaml
prometheus/charts/kube-state-metrics/templates/rolebinding.yaml
prometheus/charts/kube-state-metrics/templates/service.yaml
prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml
prometheus/charts/kube-state-metrics/templates/servicemonitor.yaml
prometheus/charts/kube-state-metrics/templates/stsdiscovery-role.yaml
prometheus/charts/kube-state-metrics/templates/stsdiscovery-rolebinding.yaml
prometheus/charts/kube-state-metrics/templates/verticalpodautoscaler.yaml
prometheus/charts/kube-state-metrics/.helmignore
prometheus/charts/kube-state-metrics/README.md
prometheus/charts/prometheus-node-exporter/Chart.yaml
prometheus/charts/prometheus-node-exporter/values.yaml
prometheus/charts/prometheus-node-exporter/templates/NOTES.txt
prometheus/charts/prometheus-node-exporter/templates/_helpers.tpl
prometheus/charts/prometheus-node-exporter/templates/clusterrole.yaml
prometheus/charts/prometheus-node-exporter/templates/clusterrolebinding.yaml
prometheus/charts/prometheus-node-exporter/templates/daemonset.yaml
prometheus/charts/prometheus-node-exporter/templates/endpoints.yaml
prometheus/charts/prometheus-node-exporter/templates/extra-manifests.yaml
prometheus/charts/prometheus-node-exporter/templates/networkpolicy.yaml
prometheus/charts/prometheus-node-exporter/templates/podmonitor.yaml
prometheus/charts/prometheus-node-exporter/templates/psp-clusterrole.yaml
prometheus/charts/prometheus-node-exporter/templates/psp-clusterrolebinding.yaml
prometheus/charts/prometheus-node-exporter/templates/psp.yaml
prometheus/charts/prometheus-node-exporter/templates/rbac-configmap.yaml
prometheus/charts/prometheus-node-exporter/templates/service.yaml
prometheus/charts/prometheus-node-exporter/templates/serviceaccount.yaml
prometheus/charts/prometheus-node-exporter/templates/servicemonitor.yaml
prometheus/charts/prometheus-node-exporter/templates/verticalpodautoscaler.yaml
prometheus/charts/prometheus-node-exporter/.helmignore
prometheus/charts/prometheus-node-exporter/README.md
prometheus/charts/prometheus-node-exporter/ci/port-values.yaml
prometheus/charts/prometheus-pushgateway/Chart.yaml
prometheus/charts/prometheus-pushgateway/values.yaml
prometheus/charts/prometheus-pushgateway/templates/NOTES.txt
prometheus/charts/prometheus-pushgateway/templates/_helpers.tpl
prometheus/charts/prometheus-pushgateway/templates/deployment.yaml
prometheus/charts/prometheus-pushgateway/templates/extra-manifests.yaml
prometheus/charts/prometheus-pushgateway/templates/ingress.yaml
prometheus/charts/prometheus-pushgateway/templates/networkpolicy.yaml
prometheus/charts/prometheus-pushgateway/templates/pdb.yaml
prometheus/charts/prometheus-pushgateway/templates/pushgateway-pvc.yaml
prometheus/charts/prometheus-pushgateway/templates/secret.yaml
prometheus/charts/prometheus-pushgateway/templates/service.yaml
prometheus/charts/prometheus-pushgateway/templates/serviceaccount.yaml
prometheus/charts/prometheus-pushgateway/templates/servicemonitor.yaml
prometheus/charts/prometheus-pushgateway/templates/statefulset.yaml
prometheus/charts/prometheus-pushgateway/.helmignore
prometheus/charts/prometheus-pushgateway/README.md
3. 安装 prometheus
powershell 复制代码
$ helm install prometheus ./ \
  -n prometheus \
  --create-namespace \
  --set server.ingress.enabled=true \
  --set server.ingress.hosts='{prometheus.k8s.local}' \
  --set server.ingress.paths='{/}' \
  --set server.ingress.pathType=Prefix \
  --set alertmanager.ingress.enabled=true \
  --set alertmanager.ingress.hosts='{alertmanager.k8s.local}' \
  --set alertmanager.ingress.paths='{/}' \
  --set alertmanager.ingress.pathType=Prefix \
  --set grafana.ingress.enabled=true \
  --set grafana.ingress.hosts='{grafana.k8s.local}' \
  --set grafana.ingress.paths='{/}' \
  --set grafana.ingress.pathType=Prefix
Error: INSTALLATION FAILED: values don't meet the specifications of the schema(s) in the following chart(s):
alertmanager:
- ingress.hosts.0: Invalid type. Expected: object, given: string

# 原因:上面的参数有问题
$ helm install prometheus ./ \
  -n prometheus \
  --create-namespace
NAME: prometheus
LAST DEPLOYED: Tue Jul 16 03:55:13 2024
NAMESPACE: prometheus
STATUS: deployed
REVISION: 1
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


Get the Prometheus server URL by running these commands in the same shell:
  export POD_NAME=$(kubectl get pods --namespace prometheus -l "app.kubernetes.io/name=prometheus,app.kubernetes.io/instance=prometheus" -o jsonpath="{.items[0].metadata.name}")
  kubectl --namespace prometheus port-forward $POD_NAME 9090


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/


$ kubectl get pods,svc,ingress -n prometheus
NAME                                                    READY   STATUS    RESTARTS   AGE
pod/prometheus-alertmanager-0                           0/1     Pending   0          90s
pod/prometheus-kube-state-metrics-649c959fbc-rjq5v      1/1     Running   0          90s
pod/prometheus-prometheus-node-exporter-7jdb2           1/1     Running   0          90s
pod/prometheus-prometheus-node-exporter-p6lm4           1/1     Running   0          90s
pod/prometheus-prometheus-node-exporter-t4hcn           1/1     Running   0          90s
pod/prometheus-prometheus-pushgateway-879d6dd6c-wh7x5   1/1     Running   0          90s
pod/prometheus-server-75d49659f-krzp9                   0/2     Pending   0          90s

NAME                                          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/prometheus-alertmanager               ClusterIP   10.68.34.56     <none>        9093/TCP   90s
service/prometheus-alertmanager-headless      ClusterIP   None            <none>        9093/TCP   90s
service/prometheus-kube-state-metrics         ClusterIP   10.68.156.120   <none>        8080/TCP   90s
service/prometheus-prometheus-node-exporter   ClusterIP   10.68.161.251   <none>        9100/TCP   90s
service/prometheus-prometheus-pushgateway     ClusterIP   10.68.229.83    <none>        9091/TCP   90s
service/prometheus-server                     ClusterIP   10.68.120.158   <none>        80/TCP     90s

$ kubectl get pvc -n prometheus
NAME                                STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
prometheus-server                   Pending                                                     8m57s
storage-prometheus-alertmanager-0   Pending                                                     8m57s

# 有些服务一直处在 Pending,原因是存储卷的问题,改为 nfs 就好使
$ helm install prometheus prometheus-community/prometheus -n prometheus --create-namespace --set server.persistentVolume.storageClass=nfs --set alertmanager.persistence.storageClass=nfs

$ kubectl get pods,svc,ingress -n prometheus
NAME                                                    READY   STATUS    RESTARTS   AGE
pod/prometheus-alertmanager-0                           1/1     Running   0          55s
pod/prometheus-kube-state-metrics-649c959fbc-zf9zw      1/1     Running   0          55s
pod/prometheus-prometheus-node-exporter-9mz4q           1/1     Running   0          55s
pod/prometheus-prometheus-node-exporter-cpz26           1/1     Running   0          55s
pod/prometheus-prometheus-node-exporter-h2w68           1/1     Running   0          55s
pod/prometheus-prometheus-pushgateway-879d6dd6c-qqr4z   1/1     Running   0          55s
pod/prometheus-server-75d49659f-s624q                   2/2     Running   0          55s

NAME                                          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/prometheus-alertmanager               ClusterIP   10.68.150.157   <none>        9093/TCP   55s
service/prometheus-alertmanager-headless      ClusterIP   None            <none>        9093/TCP   55s
service/prometheus-kube-state-metrics         ClusterIP   10.68.130.219   <none>        8080/TCP   55s
service/prometheus-prometheus-node-exporter   ClusterIP   10.68.199.239   <none>        9100/TCP   55s
service/prometheus-prometheus-pushgateway     ClusterIP   10.68.171.40    <none>        9091/TCP   55s
service/prometheus-server                     ClusterIP   10.68.196.144   <none>        80/TCP     55s
$ kubectl get pvc -n prometheus
NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
prometheus-server                   Bound    pvc-570e1a01-aecc-4d03-82fd-ed195a1266df   8Gi        RWO            nfs            58s
storage-prometheus-alertmanager-0   Bound    pvc-8c19e194-ff8c-4cc7-8bea-142b1adce5ac   2Gi        RWO            nfs            58s

最终自定义的参数执行:

powershell 复制代码
$ helm install prometheus prometheus-community/prometheus -n prometheus --create-namespace --set server.persistentVolume.storageClass=nfs --set alertmanager.persistence.storageClass=nfs --set server.service.type=NodePort --set alertmanager.service.type=NodePort --set server.service.nodePort=31203 --set alertmanager.service.nodePort=31757

root@k8s-master01:/home/ubuntu# kubectl get svc -n prometheus
NAME                                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
prometheus-alertmanager               NodePort    10.68.18.91     <none>        9093:31757/TCP   21s
prometheus-alertmanager-headless      ClusterIP   None            <none>        9093/TCP         21s
prometheus-kube-state-metrics         ClusterIP   10.68.181.212   <none>        8080/TCP         21s
prometheus-prometheus-node-exporter   ClusterIP   10.68.215.203   <none>        9100/TCP         21s
prometheus-prometheus-pushgateway     ClusterIP   10.68.69.2      <none>        9091/TCP         21s
prometheus-server                     NodePort    10.68.254.104   <none>        80:31203/TCP     21s
4. 卸载
powershell 复制代码
$ helm uninstall prometheus -n prometheus
release "prometheus" uninstalled

kubectl delete pod -n prometheus `kubectl get pod -n prometheus |awk 'NR>1{print $1}'` --force
kubectl patch ns prometheus -p '{"metadata":{"finalizers":null}}'

$ kubectl delete ns prometheus --force
Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
namespace "prometheus" force deleted

二、使用 Helm 安装 Grafana

1. 配置源

地址:https://artifacthub.io/packages/helm/grafana/grafana

powershell 复制代码
$ helm repo add grafana https://grafana.github.io/helm-charts
"grafana" has been added to your repositories

$ helm repo update grafana
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "grafana" chart repository
Update Complete. ⎈Happy Helming!⎈

$ helm search repo grafana/grafana
NAME                          	CHART VERSION	APP VERSION	DESCRIPTION                                       
grafana/grafana               	8.3.4        	11.1.0     	The leading tool for querying and visualizing t...
grafana/grafana-agent         	0.41.0       	v0.41.1    	Grafana Agent                                     
grafana/grafana-agent-operator	0.4.0        	0.41.1     	A Helm chart for Grafana Agent Operator           
grafana/grafana-sampling      	0.1.1        	v0.40.2    	A Helm chart for a layered OTLP tail sampling a...
2. 安装 grafana
powershell 复制代码
$ helm install grafana grafana/grafana -n grafana --create-namespace
NAME: grafana
LAST DEPLOYED: Tue Jul 16 06:01:14 2024
NAMESPACE: grafana
STATUS: deployed
REVISION: 1
NOTES:
1. Get your 'admin' user password by running:

   kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo


2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:

   grafana.grafana.svc.cluster.local

   Get the Grafana URL to visit by running these commands in the same shell:
     export POD_NAME=$(kubectl get pods --namespace grafana -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")
     kubectl --namespace grafana port-forward $POD_NAME 3000

3. Login with the password from step 1 and the username: admin
#################################################################################
######   WARNING: Persistence is disabled!!! You will lose your data when   #####
######            the Grafana pod is terminated.                            #####
#################################################################################

$ kubectl get all -o wide -n grafana
NAME                           READY   STATUS    RESTARTS   AGE     IP              NODE        NOMINATED NODE   READINESS GATES
pod/grafana-5b6798c77d-jlkvt   1/1     Running   0          2m37s   172.20.58.239   worker-02   <none>           <none>

NAME              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE     SELECTOR
service/grafana   ClusterIP   10.68.48.202   <none>        80/TCP    2m37s   app.kubernetes.io/instance=grafana,app.kubernetes.io/name=grafana

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES                             SELECTOR
deployment.apps/grafana   1/1     1            1           2m37s   grafana      docker.io/grafana/grafana:11.1.0   app.kubernetes.io/instance=grafana,app.kubernetes.io/name=grafana

NAME                                 DESIRED   CURRENT   READY   AGE     CONTAINERS   IMAGES                             SELECTOR
replicaset.apps/grafana-5b6798c77d   1         1         1       2m37s   grafana      docker.io/grafana/grafana:11.1.0   app.kubernetes.io/instance=grafana,app.kubernetes.io/name=grafana,pod-template-hash=5b6798c77d

最终自定义的参数执行:

powershell 复制代码
$ helm install grafana grafana/grafana -n grafana --create-namespace --set service.type=NodePort --set service.nodePort=31830

$ kubectl get svc -n grafana
NAME      TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
grafana   NodePort   10.68.140.2   <none>        80:31830/TCP   40s
3. 访问

web 访问:https://yourIp:31830

账号:admin,密码通过下面命令获取 0D0NfEWWFx9qsBiKR8PuFVxf6PPa9o8YGhZZaNXY

powershell 复制代码
$ kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
0D0NfEWWFx9qsBiKR8PuFVxf6PPa9o8YGhZZaNXY


4. 卸载
powershell 复制代码
$ helm uninstall grafana -n grafana
release "grafana" uninstalled

kubectl delete pod -n grafana `kubectl get pod -n grafana|awk 'NR>1{print $1}'` --force
kubectl patch ns grafana -p '{"metadata":{"finalizers":null}}'
kubectl delete ns grafana --force

参考:【云原生】Prometheus+Grafana on K8s 环境部署

相关推荐
FLGB1 小时前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
petaexpress3 小时前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
鱼饼6号3 小时前
Prometheus 上手指南
linux·运维·centos·prometheus
有你的晚安._14 小时前
pod基本概念
kubernetes
Richardlygo21 小时前
(k8s)Kubernetes部署Promehteus
云原生·容器·kubernetes
炸裂狸花猫1 天前
Kubernetes从零到精通(12-Ingress、Gateway API)
容器·kubernetes·gateway
青云交1 天前
大数据新视界 --大数据大厂之Kubernetes与大数据:容器化部署的最佳实践
数据库·kubernetes·容器编排·资源管理·大数据处理·扩展性、故障恢复·存储持久化·监控、日志管理、性能提升
Alone80461 天前
prometheus概念
prometheus
StevenZeng学堂1 天前
【Kubernetes笔记】为什么DNS解析会超时?
网络协议·docker·云原生·kubernetes
大白菜和MySQL2 天前
rockylinux9.4单master节点k8s1.28集群部署
云原生·容器·kubernetes