Install Grafana
Create namespace
kubectl create ns monitoring
Add repo
helm repo add bitnami https://charts.bitnami.com/bitnami
Update repo
helm repo update
View version
helm search repo -l bitnami/grafana | head
Create custom_values.yaml
I added an annotation because I wanted an internal IP for the Load Balancer. Feel free to remove that section.
vi custom_values.yaml
service:
type: LoadBalancer
annotations:
cloud.google.com/load-balancer-type: "Internal"
# Set to Recreate if you use persistent volume that cannot be mounted by more than one pods to make sure the pods is destroyed first.
updateStrategy:
type: Recreate
persistence:
enabled: true
accessModes: ReadWriteOnce
size: 200Gi
Install
helm install grafana \
-n monitoring \
-f custom_values.yaml \
--version 6.1.5 \
bitnami/grafana
Connect
- un: admin
# Password
echo "Password: $(kubectl get secret grafana-admin --namespace monitoring \
-o jsonpath="{.data.GF_SECURITY_ADMIN_PASSWORD}" | base64 --decode)"
Port forward.
kubectl port-forward svc/grafana 8081:3000 -n monitoring
open http://localhost:8081


Install Prometheus
View versions
helm search repo -l bitnami/kube-prometheus | head
Create custom_values.yaml
vi custom_values.yaml
prometheus:
enabled: true
persistence:
accessModes:
- ReadWriteOnce
size: 200Gi
alertmanager:
persistence:
enabled: true
accessModes:
- ReadWriteOnce
size: 200Gi
# Depending on which DNS solution you have installed in your cluster, enable the right option
# kubectl get po -n kube-system| grep dns
coreDns:
enabled: false
kubeProxy:
enabled: true
Install
helm install prometheus \
-n monitoring \
-f custom_values.yaml \
--version 6.1.4 \
bitnami/kube-prometheus
Connect
# Prometheus
kubectl port-forward --namespace monitoring svc/prometheus-kube-prometheus-prometheus 9090:9090
open http://localhost:9090
# Alert Manager
kubectl port-forward --namespace monitoring svc/prometheus-kube-prometheus-alertmanager 9093:9093
open http://localhost:9093
# Kube-State-Metrics
kubectl port-forward svc/prometheus-kube-state-metrics -n monitoring 4000:8080
open http://localhost:4000
Configure
Add Prometheus to Grafana.
Configuration → Data sources → Add data sourse → Prometheus (Select)
Add the following URL to the HTTP / URL section.
Note: Make sure to add the correct namespace within the prometheus service URL (in my case, I installed prometheus within the monitoring namespace).
http://prometheus-kube-prometheus-prometheus.monitoring.svc.cluster.local:9090

Click Save & test.
Clean up
helm uninstall grafana -n monitoring
helm uninstall prometheus -n monitoring