Try for free! 30 day Trial and Free Lections

Mengenal Kubernetes, Pengertian, Komponen dan Kelebihannya

Mengenal Kubernetes, Pengertian, Komponen dan Kelebihannya

Kubernetes adalah platform open source untuk mengelola workload aplikasi dalam kontainer serta menyediakan konfigurasi dan otomatisasi. Kontainer sendiri merupakan environment dengan sumber daya, sistem file, dan CPU untuk satu aplikasi. Jadi aplikasi tersebut akan memiliki sumber daya sendiri. Platform ini memiliki banyak manfaat untuk para developer dalam pengelolaan workload suatu aplikasi.

Platform ini memiliki kemampuan untuk melakukan penjadwalan aplikasi, load balancing server, serta peningkatan kapasitas kontainer secara otomatis. Karena itu, platform ini banyak digunakan untuk membangun microservices yang merupakan aplikasi kecil pengembangan dari aplikasi besar yang saling terhubung satu sama lain.

Dengan platform ini maka proses pengembangan aplikasi bisa menjadi jauh lebih cepat karena proses scale up aplikasinya tidak dibuat secara sekaligus seperti pendekatan monolith. Beberapa contoh perusahaan yang menggunakan microservices pada produk mereka seperti Netflix, Apple, dan juga Amazon.

Komponen Kubernetes

Setelah memahami apa itu kubernetes, mungkin Anda menjadi penasaran apa mengenai apa saja komponen-komponen dari platform satu. Nah, berikut ini adalah komponennya:

Cluster

Komponen pertama yaitu Cluster yang berisi server fisik atau VPS. Server yang dibutuhkan terdapat 2 jenis yaitu master node dan worker node. Master node mengatur seluruh operas cluster seperti mekanisme schedule, proses deteksi, serta memberikan respon saat events berlangsung dalam cluster.

Master Node menggunakan empat komponen yaitu kube-apiserver, kube – controller – manager, kube – scheduler dan etcd. Sementara itu Worker Node berfungsi untuk menjalankan tugas yang diberikan oleh Master Node dan menjalankan dua komponen yaitu kubelet dan kube-proxy.

Object

Komponen selanjutnya selain Cluster yaitu Object yang merupakan entitas untuk mempresentasikan kondisi dari suatu Cluster. Terdapat berbagai object dasar yang ada dalam suatu Cluster, di antaranya yaitu pertama pod, objek terkecil yang berfungsi untuk menjalankan docker images untuk membentuk kontainer.

Service, objek yang bertugas untuk mengarahkan request atau traffic ke beberapa pod menggunakan IP address dengan tujuan agar Pod bisa diakses dari luar. Kemudian terdapat volume yang berfungsi untuk menyimpan data suatu kontainer. Terakhir yaitu namespace yang merupakan objek untuk memisahkan environment cluster atau resource agar tidak asing terganggu.

Kubernetes VS Docker

Karena sama-sama mengelola kontainer, kedua platform tersebut sering dibanding-bandingkan. Padahal keduanya berbeda serta tidak bisa saling menggantikan. Kubernetes adalah platform dari seluruh ekosistem kerja yang isinya merupakan kumpulan container manager. Sedangkan Docker merupakan platform yang berfungsi sebagai container manager untuk membuat kontainer aplikasi. Docker bisa menjadi bagian dari Kubernetes, akan tetapi Kubernetes tidak bisa menjadi bagian dari Docker.

Perbandingan di antara keduanya seperti Kubernetes merupakan aplikasi untuk mengelola kontainer dalam suatu cluster server,  harus digunakan dengan platform kontainer, menggunakan service yang mengekspos Pod, merupakan kombinasi pod dan service. Sedangkan Docker merupakan aplikasi untuk membuat kontainer dalam sebuah server, bisa berjalan tanpa platform lain, menggunakan DNS untuk mendistribusikan trafik ke sebuah service, merupakan kumpulan service.

Docker masih menjadi favorit di antara software container lainnya. Hal ini karena Docker Engine yang dimilikinya mampu berjalan di berbagai ekosistem sehingga cocok digunakan untuk membangun aplikasi scalable. Namun karena perkembangan aplikasinya terlalu kompleks, maka akan menjadi lebih sulit untuk dikelola. Hal ini lah yang membuat Kubernetes diperlukan.

Kelebihan

Kubernetes memiliki berbagai kelebihan berkat berbagai fitur-fitur di dalamnya. Kelebihan tersebut meliputi:

Service Discovery dan Load Balancing

Fitur ini akan memudahkan dalam melacak kontainer secara otomatis yang tentunya sangat penting untuk mengembangkan aplikasi microservices. Selain itu dengan adanya Load Balancing maka pengelolaan trafik menjadi lebih mudah. Saat terjadi trafik yang cukup besar maka kubernetes mampu membagi beban dengan lebih rata sehingga mampu membuat aplikasi menjadi lebih stabil.

Fitur Automatic Bin Packing

Fitur ini akan memungkinkan Anda untuk mengatur kapasitas CPU dan sumber daya setiap kontainer dengan lebih spesifik. Ketika limit kapasitas sudah ditentukan pun aplikasi akan terhindar dari berebut sumber daya dan sumber daya pun akan menjadi lebih hemat.

Secret dan Configuration Management

Fitur ini memungkinkan Anda untuk menyimpan data sensitif seperti password atau token hingga SSH Keys ke dalam Secret yang tentunya lebih baik daripada menyimpannya di container image. Secret juga bisa dibuat oleh sistem maupun user.

Storage Orchestration

Fitur ini akan memungkinkan Anda untuk melakukan mount pada media penyimpanan pilihan seperti storage lokal maupun yang berbasis cloud.

Self Healing

Bagi Anda yang ingin terus menggunakan aplikasi selama 24 jam maka fitur ini sangat penting. Fitur ini memiliki kemampuan untuk memeriksa kontainer yang ada apakah dalam keadaan berjalan atau mengalami error. Jika terjadi error atau kendala maka proses yang berjalan akan dihentikan dan akan memberikan opsi untuk merestart atau mengganti secara otomatis kontainer yang error.

Automated Rollouts dan Rollbacks

Fitur ini akan sangat penting untuk membantu terkait deployment. Deployment bisa menggunakan file YAML yang di dalamnya akan berisi ReplicaSet. Jika deployment memiliki kendala maka Anda masih memiliki ReplicaSet dari versi sebelumnya yang bisa digunakan untuk melakukan rollback.

Demikianlah pembahasan tentang pengertian, kelebihan, serta perbandingan antara Kubernetes vs Docker. Semoga pembahasan ini bisa membantu memberikan pemahaman mengenai platform ini dan untuk pelajari lebih lanjut ikuti bootcamp kami di Studi DevSecOps.