Episode pembuka seri Belajar KEDA: skill Kubernetes dan konsep event-driven yang wajib dikuasai, tools yang perlu disiapkan, serta langkah verifikasi environment sebelum masuk ke materi inti KEDA.

Selamat datang di seri Belajar KEDA! Selama 22 episode ke depan, kita akan membangun pemahaman dari nol tentang KEDA (Kubernetes-based Event Driven Autoscaling): operator open-source yang membuat workload Kubernetes bisa menskalakan diri berdasarkan event — bukan sekadar CPU atau memory.
Namun ada satu syarat yang tidak bisa ditawar: KEDA berdiri di persimpangan dua dunia, yaitu Kubernetes dan konsep event-driven (queue, stream, message broker). Kalau salah satu fondasinya belum kuat, materi berikutnya akan terasa seperti membaca buku resep tanpa pernah memasak. Karena itu episode 0 ini khusus menyiapkan seluruh fondasi: skill yang wajib dimiliki, tools yang harus diinstall, dan langkah verifikasi agar semua siap saat seri ini berlanjut.
KEDA berjalan di dalam cluster sebagai operator. Semua objek yang dikelolanya adalah objek Kubernetes biasa, jadi skill di bawah ini bukan "sebaiknya", melainkan "wajib".
Kalian harus nyaman membaca dan menulis manifest Deployment, Service, ConfigMap, dan Secret. Yang terpenting, pahami pod scheduling: bagaimana Kubernetes memilih node untuk sebuah pod, apa itu nodeSelector, affinity, dan tolerations. Ini relevan karena episode 3 nanti kita akan bicara tentang menempatkan pod KEDA di node tertentu lewat tolerations.
Pahami Namespace sebagai batas isolasi resource, dan RBAC (Role, RoleBinding, ClusterRole, ClusterRoleBinding) sebagai sistem otorisasi Kubernetes. KEDA memakai RBAC untuk mengelola HPA milik kalian, dan episode 6 akan membahas otorisasi KEDA itu secara detail.
HPA adalah fondasi paling dekat dengan KEDA. KEDA sebenarnya tidak menggantikan HPA — ia membuat dan mengelola HPA untuk kalian secara otomatis. Pastikan kalian paham cara kerja HPA, resource metrics (requests.cpu, requests.memory), dan cara memeriksanya:
kubectl get hpa
kubectl describe hpa my-deployment
kubectl get deploy -n kedaKhusus perintah kedua, HPA akan membaca metrik dari metrics-server. Tanpa metrics-server, kubectl top node dan autoscaling berbasis CPU akan gagal — kita akan memasangnya di bagian setup.
Ini bagian yang paling membedakan seri ini dari seri Kubernetes pada umumnya. KEDA hidup dari konsep bahwa ada sesuatu yang masuk ke sistem, dan jumlahnya tidak selalu sebanding dengan penggunaan CPU.
Istilah pertama yang wajib kalian hafal adalah queue depth — jumlah pesan yang menunggu di dalam sebuah queue. Semakin tinggi queue depth, semakin banyak consumer yang dibutuhkan. Istilah kedua adalah consumer lag (khusus untuk stream seperti Kafka): selisih antara offset terakhir yang diproduksi dan offset terakhir yang dikonsumsi. Lag besar berarti konsumen kewalahan.
Kalian tidak perlu menjadi expert, tapi harus paham peran tiap broker karena KEDA punya scaler khusus untuk masing-masing:
| Broker | Metrik Kunci | Kapan Dipakai |
|---|---|---|
| Apache Kafka | Consumer lag pada partition | Stream real-time, log, event sourcing |
| RabbitMQ | Queue depth (pesan siap dikirim) | Task queue, job processing |
| AWS SQS | ApproximateNumberOfMessages | Workload batch berbasis cloud |
Prometheus adalah standar de facto untuk observability di ekosistem Kubernetes. Pahami konsep metric, label, dan query PromQL sederhana, karena episode-episode selanjutnya akan menulis query seperti sum(rate(http_requests_total[1m])) di dalam scaler Prometheus. Kalau sudah terbiasa dengan kubectl top node, bayangkan ini sebagai versi yang jauh lebih kaya dan bisa kalian buat sendiri.
| No | Tool | Fungsi | Level |
|---|---|---|---|
| 1 | Kubernetes cluster (kind, minikube, k3s) | Target tempat workload dan KEDA berjalan | Wajib |
| 2 | kubectl | CLI utama untuk berinteraksi dengan cluster | Wajib |
| 3 | helm | Package manager Kubernetes untuk install KEDA | Wajib |
| 4 | metrics-server | Penyedia resource metrics untuk HPA | Wajib |
| 5 | jq | Parsing output JSON dari kubectl/API | Opsional |
| 6 | Akun cloud (AWS/Azure/GCP) | Untuk demo scaler cloud di episode lanjutan | Opsional |
Untuk lab lokal, saya rekomendasikan kind untuk cluster yang cepat dibuat dan k3s jika ingin pengalaman yang lebih mendekati produksi. Semua valid — pilih yang paling nyaman dengan OS kalian.
kind create cluster --name keda-lab
kubectl config current-context
kubectl get nodesWarning
Pastikan kubectl config current-context menunjuk ke cluster yang benar. Salah context adalah penyebab paling umum manifest "berhasil di-apply tapi tidak pernah terlihat".
Di minikube, jalankan minikube addons enable metrics-server. Di cluster lain, install via Helm:
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
helm upgrade --install metrics-server metrics-server/metrics-server
kubectl get apiservices | grep metricsPerhatikan pipa ke grep metrics — di dalam tabel, pipa semacam itu harus di-escape, misalnya `kubectl get apiservices \| grep metrics{:bash}`.
KEDA didistribusikan sebagai chart Helm resmi dari kedacore. Versi stabil terbaru saat tulisan ini dibuat adalah v2.20.2 (Juli 2026):
helm repo add kedacore https://kedacore.github.io/charts
helm repo update
helm install keda kedacore/keda --namespace keda --create-namespaceTip
Selalu verifikasi versi sebelum install: cek changelog GitHub kedacore/keda atau jalankan helm search repo keda setelah helm repo update. Versi yang tertulis di artikel ini bisa saja ketinggalan saat kalian membacanya.
Sebelum lanjut ke episode 1, pastikan semuanya berjalan:
helm list -n keda
kubectl get pods -n keda
kubectl get crd | grep keda
kubectl top nodeOutput yang diharapkan: ada tiga Deployment aktif di namespace keda (keda-operator, keda-metrics-server, keda-admission-webhooks), beberapa CRD baru yang namanya diawali keda.sh, dan kubectl top node berhasil menampilkan metrik resource node.
Episode 0 adalah gerbang masuk seri ini. Berikut yang wajib kalian bawa:
Di episode 1 kita mundur sejenak untuk menjawab pertanyaan paling mendasar: kenapa autoscaling berbasis CPU saja tidak cukup, bagaimana KEDA lahir pada 2019 dari Microsoft dan Red Hat, dan mengapa sampai menjadi proyek CNCF yang sudah graduated. Semua fondasi sudah siap — mari mulai!