Wednesday, 22 September 2021

Apa itu Kubernetes? Pengertian, Fungsi dan Cara Kerjanya

 

Anda tentu ingin project aplikasi atau website yang dikerjakan dapat berjalan dengan baik. Namun, kalau aplikasinya menjadi semakin besar, bagaimana membuatnya tetap ringkas dan cepat? Kubernetes bisa jadi solusinya.

Apa itu Kubernetes? Di artikel ini kami akan membahasnya secara lengkap mulai dari pengertian, fitur, dan cara kerjanya. Yuk langsung simak!

Apa itu Kubernetes?

Kubernetes adalah platform open source untuk mengelola kumpulan kontainer dalam suatu cluster server. Platform ini pertama kali dikembangkan oleh Google dan kini dikelola oleh Cloud Native Computing Foundation (CNCF) sebagai platform manajemen kontainer yang cukup populer.

Kontainer sendiri adalah environment dengan sumber daya, CPU, dan sistem file untuk satu aplikasi. Jadi, aplikasi tersebut akan memiliki sumber daya sendiri. Keuntungannya, aplikasi jadi tidak mudah mengalami downtime.

ilustrasi kubernetes

Kubernetes memiliki kemampuan untuk melakukan penjadwalan aplikasi, load balancing server dan peningkatan kapasitas kontainer secara otomatis. 

Tak heran, Kubernetes kini banyak digunakan untuk membangun microservices, yaitu aplikasi kecil yang menjadi pengembangan dari aplikasi besar dan saling terhubung satu sama lain. 

Dengan menggunakan Kubernetes, proses pengembangan aplikasi jadi lebih cepat karena proses scale up aplikasi tidak dibuat sekaligus seperti pada pendekatan monolith.

Beberapa perusahaan yang menggunakan microservices pada produk mereka di antaranya adalah Netflix, Amazon dan Apple. Inilah yang membuat Kubernetes menjadi semakin populer berkat kebutuhan penggunaan pada aplikasi modern.

Lalu, apa saja komponen di dalam Kubernetes?

Komponen Kubernetes

Berikut ini adalah komponen-komponen dalam Kubernetes:

Cluster 

Cluster adalah suatu kelompok berisi server fisik atau VPS untuk menjalankan Kubernetes. Ada dua jenis server yang dibutuhkan, yaitu master node dan worker node

cluster kubernetes
  1. Master Node

Master node adalah server utama yang mengatur semua operasi cluster menggunakan tiga komponen, yaitu kube-apiserver, kube-controller-manager, kube-scheduler dan etcd.

Di bawah ini adalah penjelasan fungsinya:

  • kube-apiserver: validasi dan konfigurasi data untuk objek API, yaitu 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. Misalnya, menginstall pod ke node tertentu.
  • Etcd: ruang penyimpanan key value konfigurasi data cluster.
  1. Worker Node

Worker node adalah semua server non master yang berfungsi untuk menjalankan dua komponen, yaitu kubelet dan kube-proxy. Begini penjelasan fungsi komponennya:

  • Kubelet: komponen untuk memastikan kontainer beroperasi di dalam objek Pod.
  • Kube-proxy: memelihara network rules dan meneruskan koneksi ke suatu host.
  • Docker image: file dari aplikasi Docker yang berfungsi untuk membuat kontainer. 

Object

Di dalam sebuah cluster, terdapat berbagai object, yaitu entitas yang merepresentasikan kondisi dari suatu cluster. Ada berbagai object yang ada pada sebuah cluster Kubernetes, yaitu:

  1. Pod

Pod merupakan objek terkecil di dalam cluster kubernetes yang terletak di dalam node. Fungsinya untuk menjalankan docker images yang membentuk sebuah kontainer. 

node di dalam cluster
  1. Service

Service adalah objek yang digunakan untuk mengarahkan request atau traffic ke beberapa Pod menggunakan IP address.  Tujuannya agar Pod bisa diakses dari luar. 

bagaimana service kubernetes bekerja
  1.  Volume

Volume adalah objek yang berfungsi untuk penyimpanan data suatu kontainer. Letaknya di luar kontainer. Misalnya, awsElasticBlockStore, azureDisk, azureFile, cephfs, cinder, configMap.

Pada gambar di bawah ini, volume adalah /mnt/data sedangkan 192.168.0.1 adalah servicenya.

volume kubernetes
  1. Namespace

Namespace adalah objek untuk memisahkan resource atau environment cluster. Dengan namespace, Anda dapat memisahkan tiap cluster project supaya tidak saling terganggu satu sama lain.

Cara Kerja Kubernetes

Setelah mengetahui tentang komponen-komponen Kubernetes beserta fungsinya, kami akan menjelaskan cara kerja Kubernetes yang sering disebut sebagai platform untuk container orchestration.

Nah, bayangkan Anda sedang menonton sebuah orkestra dengan banyak musisi memegang alat musik berbeda masing-masing. Setiap musisi tersebut bisa diibaratkan sebagai kontainer docker yang bekerja di dalam cluster Kubernetes. 

analogi kontainer kubernetes

Lalu, Anda juga akan melihat dirigen musik yang bertugas mengatur para musisi agar memainkan alat musik sesuai instruksi yang diberikan. Anda bisa membayangkan Kubernetes sebagai dirigen yang mengatur aplikasi-aplikasi Anda agar berjalan sesuai perintah.

analogi kondektur kubernetes

Layaknya seorang dirigen musik, Kubernetes juga mengatur aspek dari aplikasi Anda.  Mulai dari mengelola workloads dari semua kontainer seperti kapan gitar dimainkan atau drum mulai dipukul, hingga menambah skalabilitas kontainer seperti menentukan berapa pemain terompet yang membunyikan nada.

analogi skalabilitas kubernetes
analogi skalabilitas Kubernetes

Dirigen musik menggunakan panduan yang disepakati bersama dalam bentuk partitur layaknya Kubernetes yang memiliki file perintah untuk dijalankan di dalam sistem cluster Kubernetes. 

Di dalam cluster terdapat otak inti Kubernetes yang bernama control plane. Fungsinya untuk mengekspos API Server yang menangani request internal dan eksternal. Semua request untuk menjalankan cluster disimpan di dalam database etcd.

API Server

Layaknya otak dari si kondektur yang merancang sistem orkestra, control plane Kubernetes mengelola worker nodes yang berisi kumpulan node atau server. Setiap node memiliki kubelet, yaitu aplikasi yang berjalan untuk berkomunikasi dengan control plane. 

bagaimana API Server bekerja

Nah, node yang dikelola oleh worker node ini berisi banyak kontainer atau musisi. Anda bisa membayangkan node seperti kelompok musisi perkusi di satu sisi dan kelompok musisi terompet di bagian lain. 

Di dalam kontainer itulah terdapat aplikasi-aplikasi yang Anda jalankan ibarat alat musik yang dimainkan oleh para musisi di kelompok orkestra tersebut.

Lalu, apa sih sebenarnya keunggulan Kubernetes sehingga menjadi platform yang demikian populer saat ini?


No comments:

Post a Comment

wisata pulau jawa terbaik

wisata pulau jawa terbaik Indonesia memanglah populer dengan kekayaan rekreasi serta pesona alamnya yang sungguh molek. lebih lagi hal rekr...