apa itu kubernetes

Bagi sebagian besar orang awam, mungkin masih sangat asing saat mendengar istilah kubernetes. Secara sederhana, kubernetes adalah sebuah platform bagi para web developer yang banyak memiliki manfaat, salah satunya dalam pengelolaan workload aplikasi. Tak perlu berlama-lama, simak sampai tuntas yuk Apa Itu Kubernetes, Cara Kerja, dan Keunggulannya

Apa Itu Kubernetes? 

Kubernetes sendiri sejenis aplikasi cluster management open source dan berasal dari aplikasi internal. Aplikasi ini umumnya digunakan oleh Google (Borg) dengan tujuan mengelola cluster milik mereka sendiri, dari segi bisnis, aplikasi management open source ini adalah senjata yang diandalkan oleh Google dengan tujuan mendongkrak naiknya peringkat Google di pasar cloud hosting.

Pengertian lain dari aplikasi ini yaitu jenis platform open source dan sering digunakan pada manajemen cointainer. Apikasi ini dapat disingkat dengan huruf dan angka K8s. untuk huruf K sendiri berada di depan, ada angka 8 di bagian tengahnya yang artinya huruf “ubernete” serta huruf s di bagian akhirnya. Oleh karena itu, aplikasi ini penyebutannya sering dengan K8s.

Istilah yang Umum Digunakan Pada Kubernetes

Dalam Kubernetes ada beberapa istilah yang harus dipahami oleh pengguna supaya bisa menggunakan aplikasi ini dengan baik:

Pod

Pod merupakan salah satu grub pada container instance. Dengan ini kalian dapat menjalankan tidak hanya satu container saja (misalkan aplikasi redis cache + web + longing service pada satu pod. Satu container dengan container yang lain yang berada dalam satu pod mampu mengakses menggunakan alamat localhost.

Kalian bisa menganggap pod merupakan laptop yang biasa digunakan untuk coding. Alamat localhost sendiri sangat umum digunakan untuk melakukan akses database pada aplikasi kalian.

Node

Node merupakan representasi dalam satu mesin dan bisa saja mesin yang digunakan adalah mesin jenis virtual (misalkan dropletnya DigitalOcean atau VPS) maupun fisik.

Service

Istilah service ini di Kubernetes adalah mekanisme yang digunakan mengekspos pod ke dunia luar. Tidak adanya alamat IP jelas pada aplikasi yang berjalan pada pod sehingga supaya bisa akses pada aplikasi lain maupun oleh user, wajib menggunakan alamat IP yang tepat. Maka di service inilah akan ditemukan alamat IP tetap dan nantinya bisa diarahkan ke pod kalian dengan menggunakan selector.

Label

Label dalam Kubernetes merupakan seperangkat informasi yang berupa metadata dengan tujuan mencari pod khusus. Selain itu, punya banyak fungsi lain yang bisa digunakan pada kubernetes.

App-Belajar

Kalian bisa membuat label app dengan isinya nama aplikasi dan container, service, dan Pod yang merupakan bagian aplikasi belajar tersebut kalian beri label app-belajar.

Stage-Production

Label stage umumnya digunakan dalam menentukan konfigurasi environment deployment pada aplikasi kalian. Misalkan testing, development, performance test, production, serta security est.

Jenis-frontend

Di sini kalian bisa menciptakan sebuah label jenis aplikasi, misalkan cache, fileserver, database, froontend, dan sebagainya.

Selector

Selector merupakan filtering yang menggunakan label, contohnya saat mencari banyak instance database dengan menggunakan aplikasi belajar yang dijalankan pada production.

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

  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 nonmaster 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. 

apa itu kubernetes
  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. 

service kubernetes
  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 service-nya.

volume
  1. Namespace

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

namespace kubernetes

Manfaat Kubernetes

Kubernetes sangat membantu dalam proses deployment aplikasi, loh. Okay, kita lihat dari perkembangan proses deployment berikut ini yuk:

manfaat kubernetes

Deployment secara tradisional hanya menggunakan server fisik sehingga kalian tidak bisa menentukan batasan resource untuk aplikasi. Ini menyebabkan munculnya permasalahan pada alokasi sumber daya.

Sebagai solusinya, muncullah Virtual Machine (VM). Dengan ini, pemanfaatan resource dan skalabilitas menjadi lebih baik. Aplikasi dapat ditambahkan atau diperbarui dengan mudah, mengurangi biaya perangkat keras, dan sebagainya.

Selanjutnya ada Container. Kontainer mirip dengan VM tapi memiliki sifat isolasi yang lebih fleksibel untuk berbagi sistem operasi (OS) antaraplikasi. Dianggap lebih ringan dibanding VM, proses kontainerisasi memungkinkan aplikasi dapat di-deploy dengan mudah, terlepas dari berbagai macam sistem, baik di on-premise, local atau di cloud.

Cara Kerja Kubernetes

Kubernetes adalah sistem operasi yang mampu menjalankan aplikasi di berbagai cluster dan infrastruktur pada layanan cloud dan private data center environment.

Seperti sistem terdistribusi lainnya, Kubernetes memiliki dua komponen, yaitu Master node dan Worker node.

Control Plane (secara kasar setara dengan konsep Master node), bertindak sebagai otak dari cluster Kubernetes. Scheduling, service discovery, load balancing, dan sebagainya ada di Control Plane. Sementara itu, Worker Node bekerja menjalankan aplikasi. Kumpulan Master Node dan Worker Node membentuk sebuah cluster.

cara kerja kubernetes

Untuk memudahkan memahami cara kerjanya, kalian bisa membayangkan Kubernetes sebagai container orchestration, yang bekerja bagaikan dirigen dalam sebuah pertunjukkan orkestra musik.

Nah, setiap musisi yang memegang alat musik diibaratkan sebagai kontainer Docker yang bekerja dalam cluster Kubernetes. Dirigen musik memiliki partitur lagu sebagai panduan, layaknya Kubernetes yang memiliki file perintah untuk dijalankan di dalam sistem cluster Kubernetes.

Keunggulan Kubernetes

Untuk memudahkan dalam pengembangan aplikasi, Kubernetes dilengkapi dengan fitur-fitur berikut ini:

1. Service discovery

Semakin banyak layanan yang membentuk aplikasi maka akan semakin sulit untuk dilacak dan dikelola. Untungnya, Kubernetes memiliki fitur service discovery sehingga dapat melacak kontainer secara otomatis. Kubernetes dapat mengenali kontainer menggunakan nama DNS atau menggunakan IP address server itu sendiri.

2. Load balancing

Kubernetes memiliki fungsi load balancing, yaitu penyeimbang trafik/beban. Load balancing dapat mengelola trafik sehingga ketika terdapat lonjakan trafik yang cukup besar maka Kubernetes mampu membagi load yang ada agar aplikasi dapat berjalan lebih stabil.

3. Orkestrasi ruang penyimpanan

Kubernetes memungkinkan kalian melakukan mount pada storage yang diinginkan, misalnya ruang penyimpanan lokal atau yang berbasis cloud storage.

4. Rollout dan rollback otomatis

Fitur ini memungkinkanm kalian untuk melakukan deployment menggunakan file YAML sehingga kalian dapat mendeskripsikan terlebih dahulu deployment yang diinginkan.

File YAML tersebut dapat digunakan untuk melakukan deployment lain atau mengubah deployment yang ada. Kalian juga bisa melakukan rollback jika terjadi kendala pada deployment. Semua terdokumentasi dan bisa dilakukan secara otomatis.

5. Bin packing otomatis

Fitur bin packing otomatis memungkinkan kalian bisa mengatur kapasitas CPU dan RAM yang spesifik di tiap kontainer. Ketika limit kapasitas sudah ditentukan maka aplikasi tidak akan berebut resource yang ada. Kalian juga jadi bisa lebih menghemat sumber daya.

6. Self-healing

Kubernetes juga bisa melakukan self-healing secara otomatis. Gimana maksudnya nih?

Self-healing yang dimaksud artinya Kubernetes memiliki kemampuan untuk memeriksa kontainer, merestart kontainer yang error, atau mengganti dan memastikan kontainer yang sudah tidak bisa menanggapi request. Kubernetes tidak akan memberikan trafik ke container sampai benar-benar siap untuk menerima request (ready to serve).

7. Secret and configuration management

Anyway, kalian bisa menyimpan data-data yang bersifat rahasia, seperti password, SSH keys, dan auth token ke dalam Kubernetes Secret.

Selain itu, kalian dapat membangun dan mengupdate secret tanpa harus membangun ulang container image dan mengekspos secret di dalam konfigurasi. Kalian juga bisa melakukan konfigurasi sesuai kebutuhan, misalnya opaque (secret umum/default), docker registry (untuk otentikasi docker registry), dan TLS (untuk penggunaan dengan public/private keys).

Okay, itulah penjelasan singkat dari kubernetes. Kubernetes merupakan platform penting bagi para developer yang memiliki banyak keunggulan. Semoga informasi ini bermanfaat ya yang sedang belajar menjadi pengembang.

Oia, bagi kalian yang suka sekali nih bikin dan ngembangin potensi di dunia website atau web developer, gunakan Unlimited Hosting yuk dari Jetorbit sebagai pilihannya.

Kunjungi Jetorbit sekarang, yuk!

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rata rata rating 5 / 5. Jumlah rate 1

Yuk Rate 5 Artikel Ini!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Bagikan:

Leave a Comment