Google memang menjadi salah satu perusahaan terbesar di dunia yang memiliki bisnis tidak ada habisnya. Bukan sekedar menyediakan platform search engine yang digunakan sebagian besar orang di dunia. Tapi beberapa bisnis lainnya. Lalu bagaimana Google menjalankannya? Lalu apa hubungannya dengan Kubernetes? Apa sebenarnya Kubernetes itu sendiri?
Apa itu Kubernetes?
Kubernetes adalah aplikasi cluster management open source. Aplikasi ini berasal dari aplikasi internal yang digunakan Google (Borg) untuk mengelola cluster mereka sendiri. Secara bisnis, Kubernetes ini merupakan senjata andalan Google untuk mendongkrak peringkatnya di pasar cloud hosting.
Mengapa kita membutuhkan Kubernetes?
Kubernetes dapat menjadwalkan dan menjalankan kontainer aplikasi pada kelompok mesin fisik atau virtual. Namun, Kubernetes juga memungkinkan pengembang untuk ‘cut the cord’ ke mesin fisik dan virtual, bergerak dari infrastruktur host-sentris ke infrastruktur kontainer, yang memberikan keuntungan dan manfaat penuh yang melekat pada kontainer. Kubernetes menyediakan infrastruktur untuk membangun lingkungan pengembangan yang benar-benar kontainer-sentris.
Bagaimana platform Kubernetes?
Meskipun Kubernetes menyediakan banyak fungsi, selalu ada skenario baru yang akan mendapatkan keuntungan dari fitur baru. Alur kerja spesifik aplikasi dapat disederhanakan untuk mempercepat kecepatan pengembang. Orkestrasi ad hoc yang dapat diterima pada awalnya seringkali membutuhkan otomatisasi yang kuat. Inilah sebabnya mengapa Kubernetes juga dirancang untuk dijadikan platform untuk membangun ekosistem komponen dan alat untuk memudahkan penerapan, skala, dan pengelolaan aplikasi.
Istilah dalam Kubernetes:
1. Pod
Adalah satu grup container instance. Kita bisa menjalankan beberapa container (misalnya aplikasi web + redis cache + logging service) dalam satu pod. Antar container dalam satu pod bisa saling mengakses dengan menggunakan alamat localhost. Anggap saja pod seperti laptop yang kita pakai coding. Untuk mengakses database dari aplikasi kita, biasanya kita pakai alamat localhost.
2. Node
Adalah representasi dari satu mesin. Mesin ini bisa saja mesin virtual (seperti VPS atau dropletnya DigitalOcean) atau fisik.
3. Service
Merupakan mekanisme untuk mengekspos pod kita ke dunia luar. Aplikasi kita yang berjalan dalam pod tidak memiliki alamat IP yang tetap. Agar bisa diakses oleh aplikasi lain atau oleh user, kita perlu alamat IP yang tetap. Service menyediakan alamat IP yang tetap, yang nantinya akan kita arahkan ke pod kita dengan menggunakan selector.
4. Label
Adalah seperangkat informasi metadata untuk mencari pod tertentu.
5. App-belajar
Kita buat label app yang isinya adalah nama aplikasi. Semua container, pod, dan service yang menjadi bagian dari aplikasi belajar kita beri label app=belajar.
6. Stage-production
Label stage bisa kita gunakan untuk menentukan berbagai konfigurasi environment deployment aplikasi kita, misalnya development, testing, performancetest, securitytest, dan production
7. Jenis-frontend
kita bisa membuat label jenis aplikasi, misalnya frontend, cache, database, fileserver, dan sebagainya.
8. Selector
Adalah filtering menggunakan label. Misalnya kita ingin mencari semua instance database untuk aplikasi belajar yang berjalan di production.