Apa itu Kubernetes ?

enter image description here

Menjalankan kontainer di local laptop relatif mudah. Akan tetapi menghubungkan container antar host, melakukan scalling, dan deploy aplikasi tanpa downtime merupakan hal/aspek yang sulit.
Hadirnya kubernetes memberikan kemudahan dalam melakukan segala hal/aspek tersebut mulai dari cara sederhana hingga powerfull dan bisa menggunakan API. Kemampuan dalam menambah objek baru dan kontroller memudahkan dalam hal kustomasasi dan kebutuhan production.

Jika dikutip dari website official, kubernetes merupakan:
"an open-source system for automating deployment, scaling, and management of containerized applications".
Sebuah sistem open source untuk otomatisasi deployment, scalling dan manajemen aplikasi berbasis kontainer.

Sebelum dikenal Kubernetes, awalnya dimulai dengan sebuah projek dari Google bernama Borg.

Komponen Kubernetes

Kubernetes menyediakan berbagai macam objek untuk memudahkan operator dalam deploy sebuah aplikasi berbasis kontainer. Dalam environment secara tradisional aplikasi termasuk web server menjadi suatu aplikasi monolitik yang dideploy di dedicated server.
Apabila trafik web naik otomatis aplikasi akan dituning dan bisa dipindahkan ke environment yang lebih besar untuk memenuhi request trafik web tersebut.

Jika dikomparasikan dengan Kubernetes, environment besar tersebut bisa deploy web server yang kecil atau secara microservices. Disisi server dan client dari sebuah aplikasi didesign bahwa akan ada agent yang tersedia untuk merespon permintaan trafik web tersebut.
Selain didesing secara microservices, Kubernetes mampu membuat banyak host untuk menjadikan cluster dan mencegah adanya downtime sehingga jika web server mendapati request yang banyak akan melakukan scalling secara otomatis dan server juga bersifat redundant.

Lalu pertanyaannya bagaimana cara menghubungkan agent-agent tersebut ? Caranya yakni dengan menggunakan service dan API Call.
Dimana service berfungsi untuk mengikat trafik dari agent satu ke agent lainnya misalnya untuk menghubungkan front-end web server ke backend database dan menghandle IP baru.
Sedangkan dari segi komunikasi dihandle oleh API Call yang memungkinkan fleksibilitas. Informasi konfigurasi cluster disimpan dalam format JSON didalam etcd. Tetapi komunitas lebih sering menulisnya dalam format YAML.

Verified by MonsterInsights