Key Takeaways
- ✓75% of Kubernetes users use Prometheus and Grafana for monitoring
- ✓kube-prometheus-stack deploys Prometheus, Grafana and Alertmanager in a single Helm chart
Managing a Kubernetes cluster without visibility into its actual state? This quickstart guides you to deploy kube-prometheus-stack, the most adopted monitoring stack: 75% of Kubernetes users use Prometheus and Grafana according to Grafana Labs.
In 15 minutes, you'll have functional dashboards displaying CPU, memory metrics, and pod status.
TL;DR: kube-prometheus-stack combines Prometheus, Grafana, and Alertmanager in a single Helm chart. Prerequisites: active Kubernetes cluster + Helm 3 installed. Result: operational monitoring dashboards accessible via port-forward.
This practical skill is at the heart of the LFS458 Kubernetes Administration training.
Why is kube-prometheus-stack the Kubernetes Monitoring Standard?
kube-prometheus-stack is a Helm chart that automatically deploys Prometheus, Grafana, Alertmanager, and essential exporters. 82% of container users run Kubernetes in production according to the CNCF Annual Survey 2025, and the majority use this stack.
kube-prometheus-stack is a preconfigured distribution that includes:
- Prometheus Operator: manages Prometheus instances via CRDs
- Grafana: 40+ preinstalled Kubernetes dashboards
- Alertmanager: alert routing to Slack, email, PagerDuty
- node-exporter: system metrics from nodes
- kube-state-metrics: Kubernetes object metrics (Deployments, Pods, Services)
Key takeaway: kube-prometheus-stack reduces configuration time from several hours to minutes thanks to defaults optimized for Kubernetes.
As Chris Aniszczyk, CTO of CNCF notes: "Kubernetes is no longer experimental but foundational." Monitoring is now a production requirement, not a luxury.
What Are the Prerequisites for This Quickstart?
Before starting, verify these elements:
| Prerequisite | Minimum Version | Verification |
|---|---|---|
| Kubernetes Cluster | 1.25+ | kubectl version --client |
| Helm | 3.10+ | helm version |
| kubectl configured | - | kubectl cluster-info |
| Storage available | 10 Gi | kubectl get pv |
Compatible clusters: minikube, kind, k3s, EKS, GKE, AKS. For a local environment, minikube with 4 GB RAM is sufficient. Check our guide on Docker containerization best practices if you're starting out.
# Verify cluster connection
kubectl cluster-info
kubectl get nodes
Step 1: Add the prometheus-community Helm Repository
Add the official repository containing kube-prometheus-stack:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
This repository maintains the official Prometheus community charts. Version 68.x (February 2026) includes Prometheus 2.54, Grafana 11.x, and the latest security fixes.
Key takeaway: Run helm repo update regularly to benefit from security updates and new features.
Step 2: Create the monitoring Namespace
Isolate monitoring components in a dedicated namespace:
kubectl create namespace monitoring
This isolation facilitates resource management, ResourceQuota application, and RBAC configuration. IT teams spend an average of 34 working days per year resolving Kubernetes problems according to Cloud Native Now. A dedicated namespace simplifies diagnosis.
Step 3: Install kube-prometheus-stack with Helm
Deploy the complete stack with this command:
helm install prometheus-stack prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--set grafana.adminPassword=YourPassword \
--set prometheus.prometheusSpec.retention=7d \
--set prometheus.prometheusSpec.resources.requests.memory=1Gi \
--set prometheus.prometheusSpec.resources.requests.cpu=500m
This installation deploys:
- Prometheus with 7-day retention
- Grafana with custom admin password
- Alertmanager for notifications
- ServiceMonitors preconfigured for Kubernetes components
Verify the deployment:
kubectl get pods -n monitoring
Wait for all pods to show Running (2-3 minutes depending on cluster).
Step 4: Access Grafana via port-forward
Expose Grafana locally to access dashboards:
kubectl port-forward -n monitoring svc/prometheus-stack-grafana 3000:80
Open your browser to http://localhost:3000 and log in:
- Username:
admin - Password: the one set in step 3
Grafana includes over 40 preconfigured dashboards. To explore custom dashboard creation, see our guide on Kubernetes monitoring architecture in production.
Step 5: Explore Essential Kubernetes Dashboards
Navigate to Dashboards > Browse in Grafana. Key dashboards to start:
| Dashboard | Purpose |
|---|---|
| Kubernetes / Compute Resources / Cluster | Global cluster CPU/memory view |
| Kubernetes / Compute Resources / Node (Pods) | Resources by node |
| Kubernetes / Compute Resources / Pod | Detail by pod |
| Kubernetes / Networking / Cluster | Network traffic |
| Prometheus / Overview | Prometheus health |
Key takeaway: The "Kubernetes / Compute Resources / Cluster" dashboard should be your daily entry point to validate overall cluster health.
To understand displayed metrics, refer to our article on Kubernetes observability: metrics, logs and traces.
Step 6: Verify Prometheus Metrics Collection
Access the Prometheus interface to validate collection:
kubectl port-forward -n monitoring svc/prometheus-stack-kube-prometheus-prometheus 9090:9090
Open http://localhost:9090 and test these PromQL queries:
# CPU usage by namespace
sum(rate(container_cpu_usage_seconds_total{container!=""}[5m])) by (namespace)
# Memory used by pod
sum(container_memory_working_set_bytes{container!=""}) by (pod)
# Number of pods by state
sum(kube_pod_status_phase) by (phase)
These queries form the basis of Kubernetes monitoring. 70% of organizations use Helm to deploy their Kubernetes applications according to Orca Security 2025.
Step 7: Customize Default Values
Create a values.yaml file for your configurations:
# values-custom.yaml
prometheus:
prometheusSpec:
retention: 15d
storageSpec:
volumeClaimTemplate:
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50Gi
grafana:
persistence:
enabled: true
size: 10Gi
alertmanager:
config:
route:
receiver: 'slack-notifications'
receivers:
- name: 'slack-notifications'
slack_configs:
- channel: '#kubernetes-alerts'
api_url: 'https://hooks.slack.com/services/xxx'
Apply modifications:
helm upgrade prometheus-stack prometheus-community/kube-prometheus-stack \
--namespace monitoring \
-f values-custom.yaml
For a complete Prometheus installation guide, see our Prometheus installation and configuration guide on Kubernetes.
What Are the Next Steps After This Quickstart?
Your monitoring stack is operational. Here are recommended actions:
- Configure alerts: define PrometheusRules for critical thresholds
- Add ServiceMonitors: expose metrics from your applications
- Integrate logs: deploy Loki for metrics/logs correlation
- Secure access: configure Grafana authentication with OIDC
As TealHQ reminds us: "Don't let your knowledge remain theoretical - set up a real Kubernetes environment to solidify your skills." This quickstart is your first step. The LFS458 Kubernetes Administration training will help you master advanced configurations needed for production and prepare for CKA certification.
Level Up with SFEIR Trainings
You've deployed your first monitoring stack. To go further:
- LFS458 Kubernetes Administration: 4 days to master cluster administration including production monitoring. Prepares for CKA certification.
- LFD459 Kubernetes for Developers: integrate observability into your cloud-native applications. Prepares for CKAD certification.
- Kubernetes Fundamentals: discover essential concepts in 1 day if you're a beginner.
See our Complete Kubernetes Training Guide to identify the path suited to your profile. Contact our advisors for a personalized training quote.