Belajar Kubernetes Simple Shared Storage - Monitoring & Observability
Episode 18 of 28

Belajar Kubernetes Simple Shared Storage - Monitoring & Observability

Membangun pengamatan untuk storage virtual: memasang Prometheus dan Grafana, scraping metrik OpenEBS via PodMonitor, menetapkan metrik yang wajib (capacity, NFS server health, disk node), serta menyusun alert untuk CPU NFS dan PVC pending

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Storage yang tidak terpantau adalah bom yang tidak terlihat. Beban tumbuh diam-diam, NFS server mulai lelah, disk node penuh — dan tidak ada yang tahu sampai aplikasi lambat atau PVC Pending. Episode 18 membangun pengamatan (monitoring & observability) untuk stack storage kita dengan Prometheus + Grafana.

Prometheus & Grafana

OpenEBS mengekspos metrik lewat HTTP endpoint pada component-nya. Kita scrap dengan Prometheus via ServiceMonitor/PodMonitor dan visualisasi dengan Grafana.

Install dengan kube-prometheus-stack (mencakup keduanya):

Install Prometheus + Grafana
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install monitoring prometheus-community/kube-prometheus-stack \
  --namespace monitoring --create-namespace

Aktifkan metrik pada OpenEBS (bila belum) dan scrape via PodMonitor:

podmonitor-openebs.yaml
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: openebs
  namespace: monitoring
spec:
  namespaceSelector:
    matchNames:
      - openebs
  selector:
    matchLabels:
      app.kubernetes.io/name: openebs
  podMetricsEndpoints:
    - port: metrics
      interval: 30s
KubernetesApply PodMonitor
kubectl apply -f podmonitor-openebs.yaml

Grafana: gunakan dashboard resmi OpenEBS (arahkan dashboard ID dari grafana.com atau impor JSON dari repositori OpenEBS).

Metrics yang Dipantau

Empat kategori yang wajib ada di dashboard:

  1. Kapasitas & penggunaan volume — dari kubelet: kubelet_volume_stats_used_bytes, kubelet_volume_stats_available_bytes.
  2. NFS Server health — CPU/memory openebs_nfs_server metrics.
  3. Disk nodenode_filesystem_avail_bytes per worker; node_disk_*.
  4. Mount statuskubelet_volume_stats_inodes_used untuk NFS yang dipenuhi inode.
Contoh: PVC tersisa < 15%
(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) < 0.15

Alerting

Pasang alert yang menyelamatkan sebelum kehabisan:

AlertEkspresi
CPU NFS server tinggisum(rate(container_cpu_usage_seconds_total{pod=~"nfs-.*"}[5m])) > 0.8
Kapasitas menipiskubelet_volume_stats_available_bytes / capacity < 0.15
PVC Pendingkube_persistentvolumeclaim_status_phase{phase="Pending"} == 1

Contoh rule:

alert-storage.yaml
groups:
  - name: openebs-storage.rules
    rules:
      - alert: PVCStorageLow
        expr: kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes < 0.15
        for: 10m
        labels:
          severity: warning
        annotations:
          summary: "PVC {{ $labels.persistentvolumeclaim }} tersisa kurang dari 15%"

Set rute notifikasi (Slack/Telegram) ke channel on-call.

Tip

Mulai dari tiga alert: kapasitas PVC >85% terpakai, NFS server CPU tinggi, dan PVC Pending. Tiga ini menutupi 90% insiden storage di lab/small cluster sebelum berdampak ke user.

Operasional Sehari-hari

Beberapa perintah yang menjadi rutinitas sehat:

KubernetesPemantauan cepat harian
kubectl get pvc -A
kubectl -n openebs get pods
kubectl -n openebs-nfs top pods | sort -k2 -h
  • kubectl get pvc -A — lihat status & kapasitas semua volume.
  • Pod NFS yang CPU-nya meroket → selidiki upload besar (episode 25).

Penutup

Pada episode 18 ini, storage kini terpantau:

Inti yang harus dibawa pulang:

  • kube-prometheus-stack = Prometheus + Grafana + operator.
  • PodMonitor mengambil metrik OpenEBS dari endpoint HTTP.
  • Metrik wajib: kapasitas volume, health NFS server, disk node, inode/mount.
  • Alert: PVC <15%, CPU NFS tinggi, PVC Pending.
  • Rutinitas: kubectl get pvc -A + lihat top pods NFS tiap hari.

Di episode 19 selanjutnya kita akan mengukur performa: benchmark fio/dd antara Local PV vs NFS, memahami latensi NFSv4, meramu mount options hard/intr/noatime, dan memutuskan trade-off fleksibilitas vs latency. Sampai jumpa di episode 19!

Belajar Kubernetes Simple Shared Storage - Monitoring & Observability | Belajar Kubernetes Simple Shared Storage