Kubernetes: Pengendali Container
Bayangkan Kubernetes sebagai seorang pegawai di pelabuhan peti kemas yang mengatur dan mengendalikan kontainer agar bisa rapi dan tidak berantakan. Dalam konteks aplikasi, macam kontainer disini biasanya (Docker atau Podman). Kontainer sendiri adalah alat yang sangat membantu pengembang agar aplikasi bisa berjalan dengan mulus, baik di laptop mereka sendiri maupun di server mana pun. Dengan begitu, kita nggak akan lagi mendengar kalimat klasik dari programmer: “Loh, di tempat saya jalan kok!“
Sebelum era Kontainer, kita dulu menggunakan Virtual Machine (VM) seperti VMware atau VirtualBox untuk menjalankan aplikasi di lingkungan terisolasi. Meskipun konsepnya mirip, VM jauh lebih berat baik dari sisi ukuran maupun konsumsi sumber daya. Karena itu, kurang cocok untuk keperluan distribusi aplikasi secara cepat dan efisien.
Nah, di sinilah kontainer datang sebagai solusi yang lebih ringan dan gesit. Ibarat peti kemas yang dipakai untuk menampung bahan logistik, kontainer hanya membawa hal-hal yang benar-benar dibutuhkan oleh aplikasi. Jadi, proses distribusi aplikasi jadi lebih sederhana, cepat, dan efisien.
Lanjut, lalu apa peran Kubernetes? Ibaratnya, kalau kita punya ratusan peti kemas (kontainer) yang harus dikelola di pelabuhan besar, kita butuh sistem yang bisa mengatur penempatan, memantau kondisi, dan memastikan semuanya berjalan lancar. Disinilah Kubernetes berperan: sebagai pengatur utama yang memastikan semua kontainer berjalan sesuai rencana. Oh ya, Kubernetes sering disingkat dengan K8s ( entah yang bener 8 itu melambangkan infinity flow / jumlah karakter “ubernete”).
Kubernetes ini fungsi utamanya adalah Orkestrasi Otomatis yaitu sebagai “otak” yang mengelola ribuan kontainer Docker di dalam banyak server (yang disebut cluster). K8s memastikan semua container berjalan di tempat yang tepat, kapan pun dibutuhkan.
Kalau diibaratkan di pelabuhan, K8s mirip seperti pengatur peti kemas yang tahu harus meletakkan, memindahkan, atau mengambil peti kemas (kontainer) dari dan ke kapal mana (node), melalui sub pelabuhan mana (cluster), dan di jalur logistik mana yang paling efisien. Semua dilakukan otomatis dan terkoordinasi agar arus logistik (aplikasi) tetap lancar.
Nah oleh karena itu fungsi K8s ini bisa di breakdown seperti ini:
Skalabilitas Horizontal (Horizontal Scaling): Tiba-tiba aplikasi kita ada lonjakan pengunjung (seperti harbolnas atau misal ekonomi Indonesia tiba-tiba meroket)? K8s tidak perlu disuruh. Dia akan secara otomatis menduplikasi kontainer aplikasi dalam hitungan detik untuk menangani beban. Sebaliknya, saat sepi, dia akan menguranginya untuk menghemat sumber daya.
Kalau diibaratkan di pelabuhan, misal gini, tiba-tiba pelabuhan diserbu oleh truk-truk yang membawa banyak barang logistik yang perlu di distribusikan, Nah, pengatur peti kemas ini tahu kapan harus menambah peti kemas dan menyebarkan ke kapal secara cepat dan efisien, kalau tiba-tiba sedikit ya peti kemasnya ini akan dikurangi lagi dan kapalnya bisa disuruh standby saja.
Load Balancing: Kalau ada banyak kontainer yang menangani permintaan (request), Kubernetes otomatis menyebarkan beban secara merata, sehingga tidak ada kontainer yang dapat traffic terlalu tinggi ataupun yang nganggur. Ini erat kaitannya sama sebelumnya, kalau bisa scaling tapi load balancingnya tidak sip maka akan tidak efisien.
Kalau di pelabuan, bayangkan banyak truk datang menjemput barang. Pengatur peti kemas nggak akan arahkan semua truk ke satu kapal saja. Dia akan sebar truk-truk itu ke berbagai kapal (node) yang punya peti kemas serupa, supaya semua kapal kerja seimbang, nggak ada yang kelebihan beban.
Penyembuhan Diri (Self-Healing): Ini salah satu fitur paling andal dari Kubernetes. Misalnya ada satu kontainer tiba-tiba rusak, error, atau bahkan server-nya mati total, K8s langsung tahu. Tanpa perlu menunggu perintah, dia akan mengganti kontainer itu dengan yang baru dan sehat secara otomatis. Aplikasi tetap jalan dengan minim gangguan ( bahkan mungkin tanpa gangguan).
Kalau diibaratkan di pelabuhan, bayangkan ada satu peti kemas yang rusak atau jatuh saat dibongkar. Pengatur peti kemas nggak akan tunggu komando, dia langsung keluarkan yang rusak, ambil peti pengganti dari gudang, dan tempatkan di posisi yang sama. Semua berjalan mulus tanpa bikin antrian macet. Aktivitas tetap lancar
Pembaruan Tanpa Gangguan (Rolling Updates): Aplikasi akan ada update terbaru? K8s melakukannya dengan sangat elegan. Ia akan mengganti kontainer lama satu per satu, sambil tetap menjaga kontainer lama tetap berjalan dan melayani pengguna. Ketika semua sudah teruji, barulah ia mematikan yang lama. Jika ada masalah di tengah jalan, kita bisa langsung rollback (kembali ke versi sebelumnya) dengan cepat.
Contoh dipelabuhan, Pengatur peti kemas tahu ada barang baru yang harus dikirim pakai versi kemasan terbaru, misal ada suatu barang yang perlu peti kemas yang ada AC nya, nah dia gak langsung ganti sekaligus tetapi, dia ganti satu per satu: keluarkan satu peti lama, masukkan satu yang baru, sambil terus menjaga alur pengiriman tetap jalan. Jadi, sistem tetap stabil, dan proses pembaruan berjalan halus tanpa mengganggu operasional. Misal ada sesuatu yang ndak cocok, bisa langsung rollback dengan cepat ( jadi minim down)
Woke, kalau sudah ada gambarang mari kita praktik …. ( link lanjutan akan tak taroh dimari )


