Istilah Kubernetes mungkin masih terdengar asing bagi orang awam. Saat kamu ingin project aplikasi atau website yang dikerjakan dapat berjalan dengan baik tetapi aplikasinya menjadi semakin besar. Lalu, bagaimana cara untuk membuatnya tetap ringkas dan cepat? Kubernetes bisa menjadi solusinya. Kubernetes adalah platform yang mempunyai banyak manfaat bagi para developer dalam pengelolaan workload aplikasi.
Ingin tahu lebih banyak tentang Kubernetes? Artikel kali ini kamu akan diajak untuk memahami pengertian Kubernetes, fungsi, komponen, hingga cara kerjanya. Simak penjelasan berikut ya!
Pengertian Kubernetes
Kubernetes adalah platform open source untuk mengelola kumpulan kontainer dalam suatu cluster server serta menyediakan konfigurasi dan otomatisasi. Kubernetes pertama kali dikembangkan oleh Google dan kini dikelola oleh Cloud Native Computing Foundation (CNCF) sebagai platform manajemen kontainer yang cukup populer. Fungsi Kubernetes adalah sebagai mesin untuk menjadwalkan dan menjalankan kontainer pada server fisik atau virtual.
Kubernetes mempunyai infrastruktur kontainer-sentris yang berarti semua aplikasi berjalan dalam kontainer atau docker. Kontainer adalah lingkungan/environment dengan sumber daya, CPU, dan sistem file untuk satu aplikasi. Jadi, aplikasi tersebut akan mempunyai sumber dayanya sendiri sehingga aplikasi tidak mudah mengalami downtime. Kubernetes mampu melakukan penjadwalan aplikasi, load balancing server, dan kapasitas kontainer secara otomatis.
Saat ini, Kubernetes banyak digunakan untuk membangun microservices, yakni aplikasi kecil yang merupakan pengembangan dari aplikasi besar dan saling terhubung satu sama lain. Proses pengembangan aplikasi menjadi lebih cepat menggunakan Kubernetes karena proses scale up aplikasi tidak dibuat sekaligus seperti pada pendekatan monolith.
Perusahaan-perusahaan yang menggunakan microservices pada produk mereka di antaranya adalah Amazon, Netflix, dan Apple. Inilah penyebab kepopuleran Kubernetes semakin menanjak berkat kebutuhan penggunaan pada aplikasi modern.
Baca juga: Apa itu Node Jaringan? Berikut Jenis dan Fungsinya!
Komponen Kubernetes
Berikut adalah komponen-komponen dalam Kubernetes
1. Cluster
Cluster adalah suatu kelompok yang berisi server fisik atau VPS untuk menjalankan Kubernetes. Terdapat dua jenis server yang dibutuhkan, yakni master node dan worker node.
A. Master Node
Master node adalah server utama yang mengatur semua operasi cluster menggunakan tiga komponen, yakni kube-apiserver, kube-controller-manager, serta kube-scheduler dan etcd.
Berikut adalah penjelasan singkat tentang fungsi-fungsinya.
- Kube-apiserver: validasi dan konfigurasi data untuk objek API, seperti pod, services, volume, dan lainnya.
- Kube-controller-manager: melakukan monitor cluster agar sesuai dengan konfigurasi data objek di dalam node.
- Kube-scheduler: menambah objek baru ke node, misalkan meng-install pod ke node tertentu.
- Etcd: ruang penyimpanan key value konfigurasi data cluster.
B. Worker Node
Worker node adalah semua server non master yang berfungsi untuk menjalankan dua komponen, yakni kubelet dan kube-proxy.
Berikut adalah penjelasan singkat tentang fungsi-fungsi komponen.
- Kubelet: komponen untuk memastikan kontainer beroperasi di dalam objek Pod.
- Kube-proxy: komponen untuk memelihara network rules dan meneruskan koneksi ke suatu host.
- Docker image: file dari aplikasi Docker yang berfungsi untuk membuat kontainer.
Baca juga: Apa itu Proxy? Ini Cara Kerja dan Manfaatnya
2. Object
Di dalam sebuah cluster terdapat berbagai object, yakni entitas yang merepresentasikan kondisi dari suatu cluster. Terdapat berbagai object pada sebuah cluster Kubernetes, yaitu:
a. Pod
Pod adalah objek terkecil dalam cluster Kubernetes yang terletak di dalam node. Fungsi Pod yakni menjalankan docker images yang membentuk sebuah kontainer.
b. Service
Service merupakan objek yang digunakan untuk mengarahkan request atau traffic ke beberapa Pod menggunakan IP address. Tujuannya adalah agar Pod dapat diakses dari luar.
c. Volume
Volume merupakan objek yang berfungsi untuk penyimpanan data suatu kontainer. Letak volume adalah di luar container, misalkan awsElasticBlockStore, azureDisk, azureFile, cephfs, cinder, configMap.
Pada gambar berikut, volume adalah /mnt/data sedangkan 192.168.0.1 adalah service-nya.
d. Namespace
Namespace merupakan objek untuk memisahkan resource atau environment cluster. Dengan namespace, tiap cluster project dapat dipisahkan agar tidak saling terganggu satu sama lain.
Baca juga: Apa itu Captcha? Inilah Fungsinya pada Website!
Cara Kerja Kubernetes
Setelah mengetahui apa itu Kubernetes, fungsi, dan komponen-komponennya. Selanjutnya adalah penjelasan tentang bagaimana cara kerja Kubernetes yang juga sering disebut sebagai platform untuk container orchestration.
Pertama-tama, bayangkan kamu sedang menonton sebuah orkestra dengan banyak musisi masing-masing memegang alat musik yang berbeda. Setiap musisi diibaratkan sebagai kontainer docker yang bekerja di dalam cluster Kubernetes. Lalu, kamu melihat ada dirigen musik yang bertugas untuk mengatur para musisi agar memainkan alat musik sesuai instruksi.
Kamu bisa menganggap Kubernetes adalah dirigen yang mengatur aplikasi-aplikasi agar berjalan sesuai perintah. Layaknya seorang dirigen musik, Kubernetes mengatur aspek dari aplikasi. Mulai dari mengelola workloads dari semua kontainer, seperti kapan gitar mulai dipetik atau drum mulai dipukul hingga menambah skalabilitas kontainer, seperti menentukan berapa jumlah pemain terompet yang membunyikan nada.
Dirigen musik menggunakan panduan dalam bentuk partitur layaknya Kubernetes yang mempunyai file perintah untuk dijalankan di dalam sistem cluster Kubernetes. Di dalam cluster tersebut terdapat otak inti Kubernetes yang disebut control plane. Fungsinya adalah untuk mengekspos API Server yang meng-handle request internal dan eksternal. Semua request untuk menjalankan cluster disimpan di dalam database etcd.
Ibarat otak dari seorang kondektur yang merancang sistem orkestra, control plane Kubernetes mengelola worker nodes yang mengandung kumpulan node atau server. Setiap node mempunyai kubelet, yakni aplikasi yang berjalan untuk berkomunikasi dengan control plane. Node yang dikelola oleh worker node ini berisi banyak kontainer.
Kamu bisa membayangkan node layaknya kelompok musisi perkusi di satu sisi dan kelompok musisi terompet di sisi lainnya. Di dalam kontainer tersebut terdapat aplikasi-aplikasi yang kamu jalankan ibarat alat musik yang dimainkan oleh para musisi di kelompok orchestra.
Baca juga: Komputer Server: Pengertian, Fungsi, dan Spesifikasinya
Leave a Reply