Mengenal Komponen-Komponen Kubernetes

Mengenal Komponen-Komponen Kubernetes

Kubernetes merupakan tools yang canggih sehingga banyak membuat perubahan dalam dunia bisnis. Apalagi saat ini pada industri IT cenderung menggunakan kubernetes untuk bagian operasionalnya. Misalnya, kubernetes memungkinkan aplikasi untuk diisolasi dan sehingga menambah lapisan keamanan ekstra.

Jika Anda menggunakan kubernetes dalam bisnis Anda, maka memahami komponen kubernetes adalah hal yang perlu Anda ketahui. Lebih lanjut, hal tersebut akan memudahkan Anda dalam membangun sistem layanan Kubernetes yang prima. Oleh karena itu, pada artikel kali ini kami akan menjelas komponen-komponen kubernetes. Untuk selengkapnya, maka bacalah artikel berikut ini!

Baca Juga: Mengenal Kubernetes vs Docker

Apa Itu Kubernetes?

Kubernetes adalah platform sumber terbuka untuk mengelola kontainer di lingkungan cloud pribadi, publik, dan hybrid. Bisnis juga bisa menggunakan Kubernetes untuk mengelola aplikasi layanan mikro. Tujuan mendasar kubernetes adalah mengelola kontainer. Namun, kontainer tidak dikelola secara mandiri dan dikelola sebagai bagian dari entitas yang lebih besar yang disebut pod.

Baca Juga: Mengenal Manfaat Kubernetes bagi Bisnis Anda

Komponen-Komponen Kubernetes

kubernetes

Kubernetes itu sendiri terdiri atas bidang kontrol yang berisi satu atau beberapa node master dan node pekerja (node workers). Adapun selengkapnya mengenai arsitektur atau komponen kubernetes tersebut adalah sebagai berikut:

  • Node master

Node master adalah salah satu komponen kubernetes yang utama. Node master adalah kumpulan komponen seperti storage, controller, scheduler, API-server yang membentuk rencana kontrol kubernetes. Ketika Anda berinteraksi dengan kubernetes menggunakan command line interface (CLI), Anda berkomunikasi dengan master node cluster Kubernetes. Semua proses berjalan pada satu node di dalam cluster, dan node ini juga disebut sebagai master. 

Adapun komponen-komponen yang terdapat pada node master adalah sebagai berikut:

1. Kube-apiserver

Server API Kubernetes atau disebut juga kube-apiserver adalah entitas manajemen pusat yang menerima semua permintaan REST untuk modifikasi (ke pod, layanan, set replikasi/pengendali, dan lainnya). Hal tersebut berfungsi sebagai ujung depan ke cluster. Selain itu, ini adalah satu-satunya komponen yang berkomunikasi dengan cluster etcd, memastikan data disimpan di etcd, dan sesuai dengan detail layanan dari pod yang digunakan. 

Kube-apiserver dirancang untuk menskalakan secara horizontal dengan menyebarkan lebih banyak instance. Pengguna dapat menjalankan beberapa instance kube-apiserver dan menyeimbangkan lalu lintas diantara instance tersebut. Dengan demikian, API memungkinkan aplikasi untuk berkomunikasi satu sama lain. 

2. Etcd

Etch adalah penyimpan nilai-kunci terdistribusi yang andal yang digunakan oleh Kubernetes untuk menyimpan semua data yang digunakan untuk mengelola cluster. Kubernetes menyimpan berkas tersebut dalam basis data yang disebut etcd. Selain menyimpan status klaster, etcd juga digunakan untuk menyimpan detail konfigurasi seperti subnet dan peta konfigurasi.

Etcd tidak menyimpan data yang terkait dengan aplikasi lain yang berjalan di Kubernetes. Data apa pun yang dibuat, dicatat, atau dihasilkan oleh aplikasi perlu disimpan secara terpisah. Etcd menyimpan informasi konfigurasi yang dapat digunakan oleh masing-masing node dalam cluster. Penyimpanan nilai kunci ini memiliki ketersediaan tinggi yang dapat didistribusikan di antara beberapa node. Lebih lanjut, pengaksesan hanya bisa oleh server API Kubernetes karena mungkin memiliki beberapa informasi sensitif.

3. Kube-scheduler

Kube-scheduler adalah layanan dalam master yang bertanggung jawab untuk mendistribusikan beban kerja atau kontainer di beberapa node. Ini bertanggung jawab untuk melacak pemanfaatan beban kerja pada node cluster dan kemudian menempatkan beban kerja pada sumber daya mana yang tersedia dan menerima beban kerja. Dengan kata lain, ini adalah mekanisme yang bertanggung jawab untuk mengalokasikan pod ke node yang tersedia. 

Kube-scheduler secara konstan memantau status pod yang berjalan di dalam Kubernetes dan memutuskan node mana yang harus menjadi tuan rumah bagi pod tersebut (kecuali jika admin telah menentukan sebuah node menggunakan DaemonSet atau konfigurasi serupa). Tujuan Kube-scheduler ini adalah menyeimbangkan beban secara merata di seluruh klaster, menghindari gangguan di antara beban kerja, dan memastikan bahwa hanya node yang sehat yang menjadi tuan rumah beban kerja.

Sebagai contoh, jika aplikasi membutuhkan 1 GB memori dan 2 inti CPU, maka pod untuk aplikasi tersebut akan dijadwalkan pada node yang memiliki setidaknya sumber daya tersebut. Kube-scheduler berjalan setiap kali ada kebutuhan untuk menjadwalkan pod. Oleh karena itu, penjadwal harus mengetahui total resource yang tersedia serta sumber daya yang harus dialokasikan pada setiap node sesuai dengan beban kerja. 

4. Kube controller manager

Kube controller manager bertugas dalam menjalankan proses kontrol. Pada dasarnya, setiap kontroler adalah proses yang terpisah, tetapi untuk mengurangi kerumitan, semuanya dikompilasi ke dalam satu biner dan dijalankan dalam satu proses. Adapun beberapa jenis ini kontroler adalah sebagai berikut:

  • Node controller: Bertanggung jawab untuk memperhatikan dan merespons ketika node mati.
  • Job controller: Mengawasi objek pekerjaan yang mewakili tugas sekali jalan, kemudian membuat Pod untuk menjalankan tugas tersebut hingga selesai.
  • EndpointSlice controller: Mengisi objek EndpointSlice (untuk menyediakan tautan antara layanan dan Pod).
  • ServiceAccount Controller: Membuat ServiceAccount default untuk ruang nama baru.

5. Cloud controller manager

Cloud controller manager memungkinkan Anda menautkan cluster ke API penyedia cloud. Selain itu, Cloud controller manager juga memisahkan komponen yang berinteraksi dengan platform cloud dari komponen yang hanya berinteraksi dengan cluster Anda.

Cloud controller manager menggabungkan beberapa loop kontrol yang independen ke dalam satu biner yang Anda jalankan sebagai satu proses. Anda dapat menskalakan secara horizontal (menjalankan lebih dari satu salinan) untuk meningkatkan kinerja atau untuk membantu menoleransi kegagalan.

Adapun beberapa jenis controllers berikut ini yang dapat memiliki ketergantungan penyedia cloud, yakni sebagai berikut:

  • Node controllers: Untuk memeriksa penyedia cloud guna menentukan apakah sebuah node telah dihapus di cloud setelah berhenti merespons.
  • Pengontrol rute: Untuk menyiapkan rute di infrastruktur awan yang mendasarinya.
  • Pengontrol layanan: Untuk membuat, memperbarui, dan menghapus penyeimbang beban penyedia cloud.

Node Workers

Node workers dalam sebuah cluster adalah mesin atau server fisik yang menjalankan aplikasi Anda. Master Kubernetes mengontrol setiap node. Ada beberapa node yang terhubung ke node master. Pada node, ada beberapa pod yang berjalan dan ada beberapa kontainer yang berjalan di dalam pod.

Dengan demikian, salah satu komponen kubernetes ini berjalan di setiap node, mempertahankan pod yang sedang berjalan dan menyediakan lingkungan runtime kubernetes. Adapun komponen-komponen yang terdapat pada node workers adalah sebagai berikut: 

1. Kubelet

Kubelet adalah agen yang berjalan di setiap node dalam cluster. Lebih lanjut, kubelet memastikan bahwa kontainer berjalan di dalam Pod.Kubelet mengambil sekumpulan PodSpec melalui berbagai mekanisme dan memastikan bahwa kontainer dalam PodSpec tersebut berjalan dan sehat. Namun, kubelet tidak mengelola kontainer yang tidak dibuat oleh Kubernetes.

2. Kubernetes proxy server

Kubernetes proxy server adalah layanan proxy yang berjalan pada setiap node dan membantu dalam membuat layanan tersedia untuk host eksternal. Layanan ini membantu meneruskan permintaan ke kontainer yang tepat dan mampu melakukan penyeimbangan beban primitif.

Layanan ini juga memastikan bahwa lingkungan jaringan dapat diprediksi dan dapat diakses dan pada saat yang sama juga terisolasi. Selain itu, kube-proxy juga mengelola pod pada node, volume, rahasia, membuat pemeriksaan kesehatan kontainer baru, dan sebagainya.

3. Container runtime

Container runtime adalah perangkat lunak yang digunakan untuk menjalankan kontainer. Dalam hal ini maka runtime ini adalah Docker. Lebih lanjut, kubernetes mendukung beberapa runtime seperti docker, containerd, cri-o, rktlet, dan semua implementasi Kubernetes CRI (Container Runtime Interface).

Baca Juga: Cara Install Kubernetes dan Kubernetes Cluster pada Server Private Cloud

Jadi, Apakah Anda Sudah Memahami Apa Saja Komponen Kubernetes?

Sebenarnya ada banyak cara agar Anda lebih memahami apa saja komponen dari kubernets. Karena pada dasarnya kubernetes adalah platform sumber terbuka untuk mengelola kontainer di lingkungan cloud pribadi, publik, dan hybrid. Adapun komponen kubernetes yang utama adalah node master dan node workers. Komponen tersebut bekerja satu sama lain untuk mendukung layanan kubernetes berjalan dengan prima. 

Setelah mengetahui komponen kubernetes tersebut, tidakkah Anda tertarik untuk menggunakannya? Anda bisa layanan Kubernetes IDCloudHost yang telah dipercaya lebih dari 300.000 pelanggan baik dari perusahaan besar maupun pemerintahan. Dengan demikian, tunggu apalagi jangan sia-siakan kemajuan bisnis Anda dengan layanan kubernetes. 

solusi sempurna untuk bisnis anda
Subscribe here to get update