quickstart5 min read

Start Kubernetes Monitoring with kube-prometheus-stack in 15 Minutes

SFEIR Institute

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:

PrerequisiteMinimum VersionVerification
Kubernetes Cluster1.25+kubectl version --client
Helm3.10+helm version
kubectl configured-kubectl cluster-info
Storage available10 Gikubectl 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:

DashboardPurpose
Kubernetes / Compute Resources / ClusterGlobal cluster CPU/memory view
Kubernetes / Compute Resources / Node (Pods)Resources by node
Kubernetes / Compute Resources / PodDetail by pod
Kubernetes / Networking / ClusterNetwork traffic
Prometheus / OverviewPrometheus 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:

  1. Configure alerts: define PrometheusRules for critical thresholds
  2. Add ServiceMonitors: expose metrics from your applications
  3. Integrate logs: deploy Loki for metrics/logs correlation
  4. 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:

See our Complete Kubernetes Training Guide to identify the path suited to your profile. Contact our advisors for a personalized training quote.