Kubernetes adalah standar de facto untuk workload cloud-native, tetapi kompleksitasnya nyata. Episode ini membahas desain cluster yang benar, pola networking, GitOps sebagai model pengelolaan, dan kapan multi-cluster layak — plus kapan kalian sebaiknya tidak memakai K8s

Di episode 4 kita memilih container sebagai compute, di episode 11 membangun IaC, dan di episode 12-13 merancang pola workload. Sekarang waktunya platform yang menyatukannya: Kubernetes (K8s). Ia adalah standar de facto untuk menjalankan container dalam skala — scheduling, scaling, self-healing, service discovery — semua otomatis.
Tetapi Kubernetes adalah keputusan arsitektur yang besar: ia membawa kompleksitas operasional nyata. Episode ini tidak menjual K8s kepada kalian — ia mengajarkan kapan K8s masuk akal, bagaimana mendesain cluster yang benar, dan kapan lebih baik memakai jalan lain.
| Kalian Butuh K8s Jika... | Kalian Belum Butuh K8s Jika... |
|---|---|
| Banyak microservices yang harus di-deploy konsisten | 1-3 service dengan deployment sederhana |
| Tim sudah punya kemampuan container & DevOps | Tidak ada yang mengerti container secara mendalam |
| Butuh scaling otomatis per-service | Load balancer + autoscaling VM sudah cukup |
| Ingin standarisasi platform lintas environment | Satu provider + managed service sudah memenuhi |
Warning
Aturan emas: jika kalian belum siap mengoperasikan container secara matang, Kubernetes justru akan memperlambat kalian. Managed container (ECS, Cloud Run, App Runner) memberi banyak benefit dengan kompleksitas jauh lebih rendah. Pindah ke K8s saat perlu, bukan karena tren.
apiVersion: v1
kind: Namespace
metadata:
name: payments
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: payments-quota
namespace: payments
spec:
hard:
requests.cpu: "4"
requests.memory: 8Gi
limits.cpu: "8"
limits.memory: 16GiResourceQuota mencegah satu tim menghabiskan seluruh cluster — kontrol yang harus ada sejak awal, bukan setelah insiden.
Arsitek wajib menyiapkan requests vs limits sejak awal. Request = sumber daya yang dijamin; limit = maksimum yang boleh dipakai. Salah set keduanya menyebabkan pemborosan (over-provision) atau eviction (under-provision).
Memahami tiga lapisan jaringan K8s:
| Lapisan | Fungsi |
|---|---|
| Pod-to-pod | Semua pod saling bisa diakses (CNI: Calico, Cilium) |
| Service | Load balancing + abstraksi sekelompok pod (ClusterIP, NodePort, LoadBalancer) |
| Ingress | HTTP routing dari luar ke service (Ingress controller / Gateway API) |
Pola umum: satu Ingress controller menerima semua traffic HTTP, merutekan ke service berdasarkan path. Ini titik tunggal yang juga menjadi tempat meletakkan WAF, rate limiting, dan TLS termination (episode 19).
Setelah desain cluster, pertanyaan berikutnya: bagaimana perubahan dikelola? Jawaban dari episode 11 — GitOps — paling pas untuk K8s. Argo CD atau Flux menyinkronkan cluster dengan repo git:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlapiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: payments
namespace: argocd
spec:
destination:
server: https://kubernetes.default.svc
namespace: payments
source:
repoURL: https://github.com/company/payments-gitops.git
path: overlays/prod
targetRevision: main
syncPolicy:
automated:
prune: true
selfHeal: trueEfek selfHeal: true: jika ada yang mengubah cluster secara manual, Argo CD mengembalikannya ke state git. Siapa pun tidak bisa "menyelinap" mengubah produksi — persis prinsip yang kita bangun di episode 11.
Multi-cluster menggandakan biaya operasional. Jika alasan kalian hanya "biar rapi", lebih baik satu cluster dengan namespace + RBAC yang benar.
Pola pengelolaan multi-cluster modern: Argo CD ApplicationSet — mendeklarasikan "deploy aplikasi ini ke semua cluster yang punya label X". Satu definisi, banyak cluster.
Kerangka desain platform K8s production:
Dokumentasikan desain cluster di diagram dan ADR — platform ini akan dipakai bertahun-tahun.
Inti yang harus dibawa pulang:
Di episode 15 selanjutnya kita akan membahas multi-region & data residency — active-active vs active-passive, kedaulatan data, dan kepatuhan regional. Sampai jumpa di episode 15!