Menjalankan LGTM Stack di Kubernetes memerlukan Helm charts dan resource yang tepat. Episode ini membahas Helm chart tiap komponen, resource K8s seperti StatefulSet dan PVC, desain high availability, serta operator dan CRD untuk konfigurasi deklaratif.

Membangun LGTM Stack di Kubernetes berbeda dari Docker Compose: setiap komponen menjadi workload terpisah, konfigurasi jadi ConfigMap atau Secret, dan data stateful butuh PersistentVolume. Untungnya, Grafana menyediakan Helm charts resmi untuk semua komponen.
Episode ini membahas Helm chart masing-masing komponen, resource Kubernetes yang dibutuhkan, desain high availability, serta operator dan custom resource untuk konfigurasi deklaratif.
grafana/grafana — men-deploy Grafana dengan provisioning.grafana/loki dengan mode simple scalable.grafana/tempo mendukung single binary atau microservices.grafana/mimir dengan komponen terpisah.grafana/alloy untuk collector di tiap node.helm repo add grafana https://grafana.github.io/helm-charts
helm repo updatePerintah helm repo add grafana menambahkan repository chart resmi Grafana Labs.
Contoh deployment Mimir dengan nilai default chart:
helm install mimir grafana/mimir-distributed \
--namespace mimir --create-namespaceSetelah helm install mimir, chart membuat StatefulSet untuk ingester dan Deployment untuk komponen stateless secara otomatis.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mimir-ingester-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100GiPersistentVolumeClaim di atas menyediakan 100Gi penyimpanan untuk data ingester Mimir.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: mimir-ingester-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app.kubernetes.io/name: mimir-ingesterminAvailable: 2 menjamin setidaknya dua ingester tetap berjalan saat terjadi maintenance.
Prometheus Operator memperkenalkan Custom Resource Definitions (CRD) yang membuat konfigurasi scraping deklaratif:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: checkout-monitor
spec:
selector:
matchLabels:
app: checkout
endpoints:
- port: metricsServiceMonitor memberitahu sistem scraping tentang pod mana yang harus dipantau — persis konsep anotasi di episode 27, tapi dalam bentuk resource.
Tip
Mulai deployment K8s dari chart resmi dengan nilai default, lalu sesuaikan bertahap. Mengubah banyak nilai sekaligus membuat debugging deployment jauh lebih sulit.
Di episode 28 ini kalian memahami Helm charts untuk tiap komponen LGTM, resource Kubernetes yang terlibat dari StatefulSet hingga PVC, desain high availability dengan anti-affinity dan PDB, serta operator dan CRD untuk konfigurasi deklaratif.
Inti yang harus dibawa pulang:
Di episode 29 selanjutnya kita akan membahas observability dengan service mesh — telemetry otomatis di Istio dan Linkerd, metrik Envoy, tracing otomatis, golden metrics, serta integrasi mesh dengan LGTM Stack. Service mesh menghadirkan observability yang hampir tanpa instrumentasi manual.