Kodeloka
  1. Kodeloka
  2. Kelas Kubernetes
  3. Materi

1 · Fondasi · Modul 1 dari 14

Apa yang Sebenarnya Dikerjakan Kubernetes

Memahami Kubernetes sebagai loop rekonsiliasi keadaan, bukan sekadar alat menjalankan kontainer — dan kenapa perbedaan itu menentukan cara Anda memakainya.

Gagasan Inti: Keadaan yang Diinginkan

Banyak orang mengira Kubernetes adalah "Docker Compose versi besar". Itu keliru dan menyesatkan. Docker Compose menjalankan perintah: nyalakan kontainer ini. Kubernetes bekerja dengan cara yang berbeda secara mendasar.

💡 Definisi kerja

Anda mendeklarasikan keadaan yang diinginkan ("saya ingin 3 replika aplikasi ini berjalan"). Kubernetes terus-menerus membandingkannya dengan keadaan sebenarnya, lalu mengambil tindakan untuk menutup selisihnya. Selamanya. Ini disebut loop rekonsiliasi.

┌──────────────────┐
│ Keadaan diinginkan│  ← Anda tulis di YAML
│  replika: 3       │
└────────┬─────────┘
         │  dibandingkan terus-menerus
         ▼
┌──────────────────┐        selisih?        ┌────────────┐
│ Keadaan sebenarnya│ ─────────────────────>│ Ambil       │
│  replika: 2       │                       │ tindakan    │
└──────────────────┘  <────────────────────  └────────────┘
                          buat 1 pod lagi

Konsekuensi praktisnya besar: bila Anda menghapus pod secara manual, Kubernetes akan membuatnya lagi. Bukan karena "bandel", tetapi karena Anda pernah menyatakan ingin 3 replika dan Anda tidak pernah mencabut pernyataan itu.

Komponen Control Plane

KomponenTugasBila mati
kube-apiserverSatu-satunya pintu masuk. Semua komponen lain bicara lewat sini, tidak pernah langsung satu sama lain.Tidak bisa mengubah apa pun; beban kerja yang sudah jalan tetap jalan
etcdBasis data key-value yang menyimpan seluruh keadaan kluster.Kluster kehilangan ingatannya — ini komponen paling kritis
kube-schedulerMenentukan pod baru ditempatkan di node mana.Pod baru menggantung di status Pending
controller-managerMenjalankan loop rekonsiliasi untuk Deployment, ReplicaSet, Node, dan lainnya.Tidak ada penyembuhan otomatis

Komponen di Setiap Node

KomponenTugas
kubeletAgen yang memastikan kontainer yang seharusnya berjalan di node ini benar-benar berjalan. Ia menjalankan probe kesehatan dan melaporkan status.
kube-proxyMengatur aturan jaringan agar Service bisa menjangkau pod.
container runtimeYang benar-benar menjalankan kontainer — containerd atau CRI-O.
⚠️ Docker sudah bukan runtime Kubernetes

Sejak Kubernetes 1.24, dockershim dihapus. Kubernetes kini berbicara langsung ke runtime lewat antarmuka CRI, biasanya containerd. Ini tidak berarti image Docker tidak bisa dipakai — format image-nya standar OCI dan tetap berjalan normal. Yang berubah hanya komponen yang menjalankannya di balik layar. Konsekuensi nyata: perintah docker ps di node tidak lagi menampilkan kontainer Kubernetes; gunakan crictl ps.

Pod: Satuan Terkecil

Kubernetes tidak menjalankan kontainer secara langsung — ia menjalankan Pod. Pod adalah satu atau beberapa kontainer yang:

  • Berbagi alamat IP yang sama — antar kontainer di dalamnya bisa saling menghubungi lewat localhost.
  • Berbagi volume.
  • Selalu dijadwalkan ke node yang sama, dan hidup-mati bersama.
📌 Kapan satu Pod berisi lebih dari satu kontainer

Jarang, dan harus ada alasan kuat. Polanya disebut sidecar: pengumpul log yang membaca berkas yang ditulis kontainer utama, proxy service mesh, atau penyegar sertifikat. Aturannya: kalau dua kontainer bisa diskalakan secara terpisah, mereka harus berada di Pod yang berbeda.

Kapan Kubernetes Tidak Sepadan

🚫 Jujurlah pada diri sendiri

Kubernetes menyelesaikan masalah skala dan keberagaman. Bila Anda punya satu aplikasi dengan trafik sedang, sebuah VM dengan systemd atau layanan PaaS akan jauh lebih murah, lebih mudah, dan lebih andal. Kubernetes menuntut Anda memahami jaringan, penyimpanan, RBAC, manajemen sumber daya, dan siklus upgrade — semua itu adalah pekerjaan penuh waktu.

Mulai memikirkan Kubernetes bila: ada banyak layanan dengan siklus rilis berbeda, kebutuhan penskalaan otomatis yang nyata, banyak tim yang butuh isolasi, atau Anda memang sudah punya orang yang mengerti mengoperasikannya.