Kubernetes(disingkat K8s) adalah sistem sumber terbuka yang digunakan untuk mengelola dan menyebarkan aplikasi dalam container di seluruh jaringan komputer. Kubernetes telah menjadi platform pengelolaan kontainer yang populer dan kuat, awalnya dikembangkan oleh Google dan saat ini dikelola oleh komunitas pengembang yang besar.
Fungsi utama dari Kubernetes include
-
Manajemen Kontainer : Kubernetes memungkinkan Anda mengemas aplikasi dan sumber dayanya ke dalam containers. Containers menyediakan lingkungan yang ringan dan memastikan aplikasi berjalan secara konsisten di sistem apa pun.
-
Penerapan Otomatis : Kubernetes memungkinkan penerapan otomatis dan skalabilitas aplikasi dan layanan yang mudah. Anda dapat menentukan kebutuhan sumber daya, jumlah instance, dan Kubernetes secara otomatis akan mempertahankan status yang diinginkan.
-
Manajemen Sumber Daya : K8s mengelola sumber daya server seperti CPU, memori, dan penyimpanan untuk memastikan bahwa aplikasi tidak mengonsumsi sumber daya secara berlebihan dan tidak saling mengganggu.
-
Pemulihan Otomatis dan Toleransi Kesalahan : Kubernetes membantu aplikasi pulih secara otomatis dari kegagalan. Ini dapat secara otomatis memutar kembali ke versi aplikasi sebelumnya jika versi baru mengalami masalah.
-
Load Balancing dan Distribusi Lalu Lintas : Kubernetes menyediakan mekanisme untuk mendistribusikan lalu lintas secara merata di antara contoh aplikasi pada server yang berbeda nodes. Ini meningkatkan kinerja dan memastikan skalabilitas.
-
Manajemen Konfigurasi dan Rahasia : Kubernetes memungkinkan Anda mengelola konfigurasi dan rahasia aplikasi dengan aman menggunakan fitur seperti Rahasia K8 dan ConfigMaps.
Mekanisme operasinya Kubernetes meliputi
-
Nodes: Server atau komputer individual dalam jaringan disebut sebagai " nodes." Ada dua jenis nodes di Kubernetes: Node Master dan Node Pekerja. Node Master mengelola dan mengontrol keseluruhan sistem, sedangkan Node Pekerja menjalankan containers dan menjalankan aplikasi.
-
Pods: Pod adalah unit terkecil yang dapat disebarkan di Kubernetes. Sebuah pod dapat berisi satu atau beberapa containers, namun mereka berbagi penyimpanan jaringan dan siklus hidup yang sama. Ini memfasilitasi komunikasi antar containers dalam pod.
-
Controller: Pengontrol adalah komponen yang mengelola dan memelihara replika pods. Jenis pengontrol termasuk ReplicaSet(memastikan jumlah yang benar pods dan memulai ulang jika perlu), Deployment(mengelola versi dan pembaruan aplikasi), dan StatefulSet(untuk menerapkan aplikasi stateful).
-
Service: Layanan adalah mekanisme untuk menyeimbangkan beban dan mendistribusikan lalu lintas ke pods. Layanan memudahkan aplikasi untuk mengakses pods tanpa perlu mengetahui lokasi spesifiknya.
-
Kubelet dan Kube Proxy: Kubelet adalah komponen yang berjalan pada setiap node pekerja, bertanggung jawab untuk mengelola pods node tersebut. Kube Proxy adalah proxy jaringan untuk menghubungkan ke pods.
Hasilnya, Kubernetes mengotomatiskan penerapan dan pengelolaan aplikasi dalam container, mengurangi waktu dan upaya yang diperlukan untuk memelihara sistem yang kompleks.