Apa itu Kubernetes? #

Kubernetes adalah platform open-source untuk menjalankan, mengelola, dan menskalakan aplikasi berbasis container secara otomatis. Jika kamu sudah familiar dengan Docker, kamu tahu bagaimana cara membungkus aplikasi ke dalam container — tapi menjalankan puluhan atau ratusan container di banyak mesin secara bersamaan adalah masalah yang berbeda. Di sinilah Kubernetes masuk: ia mengambil alih pekerjaan koordinasi yang terlalu kompleks jika dilakukan manual.

Apa yang Dilakukan Kubernetes? #

Kubernetes menangani semua hal operasional yang terjadi setelah container dibuat. Bukan hanya menjalankan container, tapi juga memastikan container tetap berjalan, mendistribusikannya ke mesin yang tepat, mengatur bagaimana container berkomunikasi satu sama lain, dan menyesuaikan jumlah container ketika traffic naik atau turun.

Tanpa Kubernetes:
  Developer → build image → deploy manual ke server → monitor manual

Dengan Kubernetes:
  Developer → build image → deklarasikan "saya butuh 3 replica"
                          → Kubernetes menjalankan, memantau, dan memulihkan otomatis

Secara konkret, Kubernetes melakukan:

  • Scheduling — memilih mesin mana yang paling tepat untuk menjalankan container berdasarkan ketersediaan resource
  • Self-healing — mendeteksi container yang crash dan menjalankan ulang secara otomatis
  • Scaling — menambah atau mengurangi jumlah container sesuai beban
  • Load balancing — mendistribusikan traffic ke container yang tersedia
  • Rolling update — memperbarui aplikasi tanpa downtime
  • Secret & config management — menyimpan dan menyuntikkan konfigurasi secara aman

Dari Mana Kubernetes Berasal? #

Kubernetes lahir dari pengalaman Google menjalankan infrastruktur berskala masif selama lebih dari satu dekade. Di internal Google, ada sistem bernama Borg yang mengorkestrasi miliaran container setiap minggunya. Saat container mulai populer di industri — terutama setelah Docker muncul pada 2013 — Google memutuskan untuk merilis versi open-source dari konsep di balik Borg.

Kubernetes pertama kali dirilis secara publik pada 2014. Setahun kemudian, Google menyumbangkan proyek ini ke Cloud Native Computing Foundation (CNCF), sebuah organisasi nirlaba yang menjaga ekosistem cloud native. Sejak saat itu, Kubernetes berkembang pesat dan menjadi standar de facto untuk container orchestration.

Nama “Kubernetes” berasal dari bahasa Yunani, berarti “helmsman” atau “pilot kapal”. Logo-nya pun berupa roda kemudi — mencerminkan peran Kubernetes sebagai pengendali armada container.


Konsep Inti yang Perlu Dipahami #

Sebelum masuk ke detail teknikal, ada beberapa konsep dasar yang menjadi fondasi Kubernetes:

Declarative model — Kamu tidak memerintahkan Kubernetes “jalankan container ini di server itu”. Kamu mendeklarasikan keadaan yang diinginkan (“saya butuh 3 replica aplikasi ini”) dan Kubernetes yang mencari cara untuk mencapai keadaan tersebut. Ini perbedaan fundamental dari pendekatan imperatif.

Pod — Unit terkecil di Kubernetes. Satu Pod bisa berisi satu atau beberapa container yang berjalan bersama di mesin yang sama dan berbagi network.

Cluster — Kumpulan mesin (fisik atau virtual) yang dikelola Kubernetes bersama-sama. Terdiri dari satu atau lebih Control Plane (otak cluster) dan banyak Worker Node (mesin yang menjalankan aplikasi).

Control loop — Kubernetes terus-menerus membandingkan keadaan aktual cluster dengan keadaan yang diinginkan, lalu mengambil tindakan korektif jika ada perbedaan. Ini yang membuat Kubernetes “self-healing”.

Desired state:  3 replica Pod "api-server" berjalan
Actual state:   2 replica berjalan (1 crash)
                    │
                    ▼
Kubernetes action: jalankan 1 Pod baru → actual state kembali = desired state

Kubernetes vs Docker #

Pertanyaan yang sering muncul: “Kubernetes vs Docker, mana yang harus dipilih?” Ini pertanyaan yang keliru karena keduanya bekerja di lapisan yang berbeda.

DockerKubernetes
Fungsi utamaMembuat dan menjalankan containerMengelola banyak container di banyak mesin
ScopeSatu mesinBanyak mesin (cluster)
ScalingManualOtomatis
Self-healingTidak adaAda
Networking antar mesinTidak adaAda

Docker dan Kubernetes bukan kompetitor — mereka saling melengkapi. Docker membuat container; Kubernetes mengoperasikannya di skala produksi. Kubernetes sendiri mendukung berbagai container runtime, tidak hanya Docker (juga containerd, CRI-O, dll).


Ringkasan #

  • Kubernetes adalah container orchestrator — ia mengelola siklus hidup container di banyak mesin sekaligus, bukan hanya menjalankan container.
  • Lahir dari pengalaman Google — berbasis sistem internal Borg yang sudah terbukti di skala miliaran container, open-source sejak 2014 dan dikelola CNCF.
  • Declarative model — kamu mendeklarasikan keadaan yang diinginkan, Kubernetes yang mencari cara mencapainya dan mempertahankannya.
  • Self-healing by design — control loop Kubernetes terus memantau dan memperbaiki perbedaan antara desired state dan actual state.
  • Bukan pengganti Docker — Kubernetes bekerja di atas container runtime seperti Docker/containerd, menangani lapisan orkestrasi yang Docker tidak sentuh.

← Sebelumnya: Pengenalan   Berikutnya: Problem yang Diselesaikan →

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact