kube-prometheus-stack
To monitor your Kubernetes cluster (including Knative functions and OpenEBS storage), here's a lightweight yet comprehensive setup using Prometheus, Grafana, and Alertmanager via the kube-prometheus-stack. This stack is optimized for single-node clusters and includes preconfigured dashboards/alerts.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
config:
# monitoring-values.yaml
prometheus:
prometheusSpec:
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: openebs-hostpath
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 5Gi
resources:
requests:
memory: 512Mi
cpu: 200m
grafana:
adminPassword: "admin"
persistence:
enabled: true
storageClassName: openebs-hostpath
size: 5Gi
alertmanager:
alertmanagerSpec:
resources:
requests:
memory: 256Mi
cpu: 100m
# Disable components not needed for a single-node cluster
kubeEtcd:
enabled: false
kubeControllerManager:
enabled: false
kubeScheduler:
enabled: false
helm install monitoring prometheus-community/kube-prometheus-stack \
-n monitoring --create-namespace \
-f monitoring-values.yaml
$ kubectl get pods -n monitoring
NAME READY STATUS RESTARTS AGE
alertmanager-monitoring-kube-prometheus-alertmanager-0 0/2 PodInitializing 0 21s
monitoring-grafana-7cfd668f87-mkgxj 0/3 PodInitializing 0 35s
monitoring-kube-prometheus-operator-858d674878-pb5jh 1/1 Running 0 35s
monitoring-kube-state-metrics-6568c5bc45-jdz98 1/1 Running 0 35s
monitoring-prometheus-node-exporter-zp9zb 1/1 Running 0 35s
prometheus-monitoring-kube-prometheus-prometheus-0 0/2 PodInitializing 0 21s