Kubernetes

Kubernetes adalah platform open-source yang dikembangkan oleh Google untuk mengelola banyak kontainer secara otomatis. 

Software Engineering

Mau Belajar

Software Engineering

GRATIS?

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!

IKUT KURSUS GRATIS

Mau Belajar

Software Engineering

GRATIS?

Apa itu Kubernetes?

kubernetes adalah

Saat ini, permintaan untuk membuat aplikasi yang canggih semakin tinggi karena users cenderung memilih aplikasi yang serbaguna. Proses pembuatan aplikasi pun akan semakin kompleks dan banyak perusahaan mulai menggunakan kontainerisasi, atau teknologi untuk menyatukan aplikasi dan elemennya, sebagai fondasi untuk pengembangan software

Dibandingkan dengan virtual machine biasa, kontainer dapat menggunakan infrastruktur perangkat dengan lebih hemat. Namun, saat terdapat banyak kontainer, semakin sulit untuk mengelolanya. Karena itu, Kubernetes dapat menjadi salah satu solusinya. 

Kubernetes adalah platform open-source yang dikembangkan oleh Google untuk mengelola banyak kontainer secara otomatis. 

Kubernetes berfungsi sebagai kerangka kerja untuk manajemen dan koordinasi kontainer supaya efisien. Tanpanya, software yang dirancang, terutama yang menggunakan teknologi cloud, akan cenderung boros waktu computing dan penyimpanan.   

Komponen Kubernetes

Komponen Kubernetes meliputi control plane, node, dan add-on.  

Komponen Control Plane 

Komponen control plane bertanggung jawab untuk mengelola dan mempertahankan kondisi cluster (kumpulan server atau komputer yang bekerja sama untuk mengelola kontainer), sesuai dengan keinginan. 

  • kube-apiserver: Mengekspos API Kubernetes dan berfungsi sebagai titik kontrol pusat untuk mengelola cluster.
  • kube-scheduler: Menetapkan kontainer ke node atau mesin berdasarkan persyaratan sumber daya dan kebijakan penjadwalan.
  • kube-controller-manager: Mengelola berbagai pengontrol yang menangani fungsi tingkat cluster, misalnya manajemen node dan replikasi. 
  • etcd: Menyimpan data konfigurasi cluster, termasuk status sistem yang diinginkan.

Komponen Node

Komponen node bekerja sama untuk mengelola dan mengeksekusi kontainer.

  • Kubelet: Berjalan di setiap node dan mengelola kontainer dengan memastikan kontainer berjalan seperti yang diharapkan, serta berkomunikasi dengan bidang kontrol.
  • Container Runtime: Software yang bertanggung jawab untuk menjalankan kontainer, seperti Docker, containerd, atau CRI-O.
  • kube-proxy: Menangani komunikasi jaringan di dalam cluster, termasuk mengarahkan traffic ke kontainer yang sesuai.

Add-on

Komponen add-on memperluas fungsionalitas platform dengan menyediakan fitur tambahan, misalnya:

  • DNS: Memfasilitasi penemuan layanan berbasis DNS untuk kontainer di dalam cluster sehingga kontainer dapat berkomunikasi dengan nama DNS.
  • Dasbor: User interface berbasis web untuk mengelola dan memantau cluster.
  • Ingress Controller: Mengelola akses eksternal ke layanan di dalam cluster dengan mengarahkan traffic berdasarkan aturan dan konfigurasi.
  • Persistent Volumes: Memiliki mekanisme untuk mengelola dan menggunakan penyimpanan yang persisten di cluster.
  • Metrics Server: Mengumpulkan metrik penggunaan sumber daya dari node dan kontainer.
Sumber: Kubernetes.io

Keunggulan Kubernetes

Melansir dari Kubernetes.io, berikut ini adalah keunggulan Kubernetes: 

Service discovery dan load balancing

Kubernetes memberikan nama DNS yang stabil untuk setiap kontainer atau layanan di dalam cluster sehingga kontainer atau layanan lain dapat ditemukan dengan menggunakan nama DNS. Kubernetes juga secara otomatis menyeimbangkan traffic kontainer sehingga deployment dapat lebih stabil.

Pengelolaan penyimpanan

Kubernetes memungkinkan pemasangan otomatis berbagai jenis sistem penyimpanan seperti penyimpanan lokal atau provider cloud berdasarkan pilihan pengguna.

Rollout dan rollback otomatis 

Dengan fitur ini, Kubernetes dapat secara bertahap mengubah status kontainer sebenarnya agar sesuai dengan status yang diinginkan.

Pengemasan bin otomatis

Dengan Kubernetes, pengguna dapat menentukan persyaratan CPU dan memori untuk kontainer dan secara efisien menjadwalkan dan menggunakan sumber daya di seluruh cluster node untuk mengoptimalkan penempatan kontainer.

Self-healing 

Kubernetes dapat memastikan kesehatan dan ketersediaan kontainer dengan memulai ulang atau mengganti kontainer yang gagal secara otomatis, menghentikan kontainer yang tidak responsif, dan hanya mengarahkan traffic ke kontainer yang siap digunakan.

Manajemen rahasia dan konfigurasi

Kubernetes memiliki cara yang aman dan fleksibel untuk mengelola informasi sensitif, seperti kredensial dan konfigurasi data. Dengan Kubernetes, informasi rahasia dapat diperbarui dengan mudah tanpa membuat ulang image container atau mengekspos data sensitif dalam konfigurasi.

Kubernetes vs Docker

Kubernetes dan Docker saling berkaitan tetapi keduanya memiliki tujuan yang berbeda dalam ekosistem kontainer:

Docker

Docker adalah platform yang memfasilitasi pembuatan dan distribusi kontainer aplikasi. Docker menyediakan perangkat untuk mengemas aplikasi dan elemennya ke dalam unit mandiri yang dikenal sebagai kontainer. Dengan Docker, kontainer ini dapat dengan mudah dibagikan dan digunakan di lingkungan yang berbeda sehingga konsisten dan dapat direproduksi. 

Kubernetes

Sebaliknya, Kubernetes merupakan platform orkestrasi kontainer, yaitu pengelolaan dan koordinasi aplikasi yang terkontainerisasi dalam skala besar. Kubernetes mengotomatiskan tugas-tugas seperti penerapan kontainer, scaling, dan load balancing di seluruh cluster mesin atau node

Singkatnya, Docker menyederhanakan proses pembuatan dan distribusi kontainer, sedangkan Kubernetes melengkapinya dengan menawarkan fungsionalitas tingkat lanjut untuk mengelola aplikasi dalam kontainer di lingkungan produksi. 

FAQ (Frequently Asked Question)

Bagaimana cara kerja Kubernetes?

Cara kerja Kubernetes secara garis besar adalah:

  • Kubernetes beroperasi berdasarkan model deklaratif, di mana pengguna menentukan status aplikasi yang diinginkan. 
  • Kubernetes terus memantau cluster dan melakukan penyesuaian untuk memastikan bahwa keadaan sebenarnya cocok dengan keadaan yang diinginkan. 
  • Kubernetes juga menangani penjadwalan kontainer, scaling otomatis, penyeimbangan beban, jaringan, dan pemulihan mandiri sehingga aplikasi dapat berjalan dengan efisien.

Kata kunci lainnya

Mulai karirmu dalam

Software Engineering

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!
ikut kursus gratis
Daftar Isi