Cara kerja Kubernetes

Notification

×

Cara kerja Kubernetes

08/01/2023 | Januari 08, 2023 WIB Last Updated 2023-01-21T15:15:03Z

https://www.itnews.id/2023/01/cara-kerja-kubernetes.html


Tidak jarang aplikasi yang cukup kompleks, yang berkomunikasi melalui layanan mikro, membutuhkan banyak kontainer Linux untuk berkomunikasi satu sama lain.  Sehingga menjalankan aplikasi dalam container menjadi sangat populer pada saat ini.


Karena kemampuan mengulang dan merilis aplikasi dengan menyediakan dependensinya melalui kode adalah keunggulan besar untuk organisasi yang beroperasi dalam skala besar.


Menggunakan Kubernetes (sistem orkestrasi kontainer) adalah cara untuk mengelola lifecycle aplikasi dalam kontainer di seluruh cluster yang memberikan kemampuan untuk mengotomatiskan penyebaran dan penskalaan beberapa kontainer sekaligus


Cara kerja Kubernetes

Kluster Kubernetes adalah sekumpulan mesin node untuk menjalankan aplikasi dalam container.  Menjalankan Kubernetes adalah menjalankan sebuah cluster.


https://www.itnews.id/2023/01/cara-kerja-kubernetes.html


Cluster Kubernetes memvisualisasikan tiga bagian: 

  • User interface
  • Control plane 
  • Node (Mesin Komputasi)

User Interface adalah bagian yang berinteraksi dengan pengguna untuk mengirimkan perintah kepada Control Plane, bisa berupa command-line interface (CLI) yang merupakan perintah berbasis text atau user interface (UI) perintah dengan tampilan visual. 


Control Plane bertanggung jawab untuk mempertahankan keadaan cluster yang diinginkan, mengelola workers node dan pod.  control plane terdiri dari:

  • api-server
  • cloud controller manager
  • controller manager
  • kube scheduler 
  • etcd

 

https://www.itnews.id/2023/01/cara-kerja-kubernetes.html


Api server  adalah API Kubernetes yang berfungsi untuk berinterakasi ketika membuat perubahan di Kubernetes, menyimpan dan memperbarui status di etcd.


etcd adalah highly-available key value store yang sangat konsisten dan tersedia digunakan sebagai penyimpanan pendukung Kubernetes untuk semua data cluster.

Anda dapat menemukan informasi mendalam tentang etcd di dokumentasi resmi.


controller manager  adalah pengontrol untuk menangani fungsionalitas dasar Kubernetes seperti:
  • Manajemen node
  • Manajemen pekerjaan
  • Manajemen endpoint
  • Pengontrol token layanan dan akun
  • Pengontrol komponen sejenis lainnya.

Singkatnya, controller-manager adalah proses yang mengambil alih ketika sebuah node bergabung, endpoint baru dibuat, akun layanan baru dibuat, dan fungsi dasar Kubernetes lainnya.


kube-scheduler adalah untuk menemukan pod yang tidak diberi node apa pun dan menetapkan node, termasuk faktor-faktor yang terlibat dalam pemilihan node seperti afinitas, anti-afinitas, dll.


Cloud control manager di dalamnya meliputi:

1.  Node controller:  bertanggung jawab untuk memperbarui objek Node saat server baru dibuat di infrastruktur cloud. 


Node controller memperoleh informasi tentang host yang berjalan di dalam provider cloud dan melakukan fungsi-fungsi sebagai berikut: 

  • Perbarui objek Node dengan pengidentifikasi setiap server terkait yang diperoleh dari API cloud provider.
  • Memberi anotasi dan memberi label pada objek Node dengan informasi khusus cloud, seperti wilayah di mana node ditempatkan dan sumber daya (CPU, memori, dll) yang tersedia.
  • Berisi nama host dan alamat jaringan node.
  • Memverifikasi kesehatan node. Jika node menjadi tidak responsif, pengontrol ini akan memeriksa API penyedia cloud untuk mengetahui apakah server telah dinonaktifkan/dihapus/dihentikan. 
  • Pengontrol yang akan menghapus objek Node dari cluster Kubernetes, jika node telah dihapus dari cloud.

Beberapa implementasi cloud provider membaginya menjadi Node controller dan lifecycle controller node yang terpisah.


2.  Route controller  bertanggung jawab untuk mengonfigurasi rute di cloud dengan tepat sehingga kontainer pada node berbeda di cluster kubernetes dapat berkomunikasi satu sama lain.


Bergantung pada penyedia cloud, route controller mungkin juga mengalokasikan alamat blok IP untuk jaringan Pod.


3.  Service controller layanan terintegrasi dengan komponen infrastruktur cloud seperti: 
  • Pengelola load balancer
  • Alamat IP
  • Pemfilteran paket jaringan
  • Target health checking. 

Service controller berinteraksi dengan API cloud provider untuk menyiapkan load balancer dan komponen infrastruktur lainnya saat mendeklarasikan service resource yang memerlukannya.


Docker

Docker dapat digunakan sebagai runtime container yang diatur oleh Kubernetes.  Saat Kubernetes menjadwalkan pod ke sebuah node.


Kubelet pada node tersebut akan menginstruksikan Docker untuk meluncurkan container yang ditentukan.  Kubelet kemudian secara terus-menerus mengumpulkan status kontainer tersebut dari Docker dan mengumpulkan informasi tersebut di bidang kontrol. 


Docker menarik kontainer ke node untuk memulai dan menghentikan kontainer.  Perbedaan saat menggunakan Kubernetes dengan Docker adalah sistem otomatis meminta Docker untuk melakukan hal-hal tersebut menggantikan admin melakukannya secara manual di semua node untuk semua container.


Baca juga:

Referensi: