Install and Configure Prometheus with Grafana in Minikube cluster

 1. Install and setup minikube cluster in ubuntu using following link.

    https://devopsbyashish.blogspot.com/2025/01/how-to-install-docker-in-ubuntu.html

2. Install helm.
    sudo snap install helm --classic

3. Install Prometheus
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    helm install prometheus prometheus-community/prometheus

4. Verify Prometheus by listing pods and services.
      kubectl get pods -A
      kubectl get svc
 
5. Expose Prometheus-Server for external network.
    kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-ext
    
6. Get the minikube IP.
    minikube ip

7. Check if Prometheus URL working.
    curl http://minukubeip:mapedport
    curl 192.168.49.2:31375
    
8. Add helm repo and install Grafana.
    helm repo add grafana https://grafana.github.io/helm-charts
    helm repo update
    helm install grafana grafana/grafana

9. Follow the instruction given in output from step 8 last command to get Grafana admin password
    kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

10. Verify grafana.
        kubectl get pods -A
        kubectl get svc

11. Expose Prometheus-Server for external network.
      kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-ext

12. Verify Grafana URL.
        curl http://minukubeip:mapedport
        curl 192.168.49.2:32083
  
13. Expose prometheus-kube-state-metrics for external network.
      kubectl expose service prometheus-kube-state-metrics --type=NodePort --target-port=8080 --name=prometheus-kube-state-metrics-ext

14. Verify prometheus-kube-state-metrics URL.
        curl http://minukubeip:mapedport
        curl 192.168.49.2:32052