Kubernetes - Arsitektur

Pada bab ini, kita akan membahas arsitektur dasar Kubernetes.

Kubernetes - Arsitektur Cluster

Seperti yang terlihat pada diagram berikut, Kubernetes mengikuti arsitektur client-server. Dimana, kami memiliki master yang diinstal pada satu mesin dan node pada mesin Linux yang terpisah.

Komponen utama dari master dan node didefinisikan di bagian berikut.

Kubernetes - Komponen Mesin Utama

Berikut adalah komponen Kubernetes Master Machine.

dll

Ini menyimpan informasi konfigurasi yang dapat digunakan oleh masing-masing node di cluster. Ini adalah penyimpanan nilai kunci ketersediaan tinggi yang dapat didistribusikan di antara beberapa node. Ini hanya dapat diakses oleh server Kubernetes API karena mungkin memiliki beberapa informasi sensitif. Ini adalah Toko nilai kunci terdistribusi yang dapat diakses oleh semua.

Server API

Kubernetes adalah server API yang menyediakan semua operasi pada cluster menggunakan API. Server API mengimplementasikan antarmuka, yang berarti alat dan pustaka yang berbeda dapat dengan mudah berkomunikasi dengannya.Kubeconfigadalah paket bersama dengan alat sisi server yang dapat digunakan untuk komunikasi. Ini mengekspos Kubernetes API.

Manajer Pengontrol

Komponen ini bertanggung jawab atas sebagian besar kolektor yang mengatur status cluster dan melakukan tugas. Secara umum, ini dapat dianggap sebagai daemon yang berjalan di loop nonterminating dan bertanggung jawab untuk mengumpulkan dan mengirim informasi ke server API. Ini berfungsi untuk mendapatkan status bersama dari cluster dan kemudian membuat perubahan untuk membawa status server saat ini ke status yang diinginkan. Pengontrol kunci adalah pengontrol replikasi, pengontrol titik akhir, pengontrol namespace, dan pengontrol akun layanan. Manajer pengontrol menjalankan berbagai jenis pengontrol untuk menangani node, titik akhir, dll.

Penjadwal

Ini adalah salah satu komponen kunci dari master Kubernetes. Ini adalah layanan di master yang bertanggung jawab untuk mendistribusikan beban kerja. Ini bertanggung jawab untuk melacak pemanfaatan beban kerja pada node cluster dan kemudian menempatkan beban kerja di 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. Penjadwal bertanggung jawab atas pemanfaatan beban kerja dan mengalokasikan pod ke node baru.

Kubernetes - Komponen Node

Berikut adalah komponen kunci dari server Node yang diperlukan untuk berkomunikasi dengan master Kubernetes.

Buruh pelabuhan

Persyaratan pertama dari setiap node adalah Docker yang membantu dalam menjalankan wadah aplikasi yang dienkapsulasi dalam lingkungan operasi yang relatif terisolasi tetapi ringan.

Layanan Kubelet

Ini adalah layanan kecil di setiap node yang bertanggung jawab untuk menyampaikan informasi ke dan dari layanan bidang kontrol. Ini berinteraksi denganetcdsimpan untuk membaca detail konfigurasi dan nilai wright. Ini berkomunikasi dengan komponen master untuk menerima perintah dan bekerja. ItukubeletProses kemudian mengambil tanggung jawab untuk memelihara status kerja dan server node. Ia mengatur aturan jaringan, penerusan port, dll.

Layanan Kubernetes Proxy

Ini adalah layanan proxy yang berjalan di setiap node dan membantu menyediakan layanan untuk host eksternal. Ini membantu dalam meneruskan permintaan ke container yang benar dan mampu melakukan load balancing primitif. Itu memastikan bahwa lingkungan jaringan dapat diprediksi dan dapat diakses dan pada saat yang sama juga diisolasi. Ia mengelola pod pada node, volume, rahasia, membuat pemeriksaan kesehatan container baru, dll.

Kubernetes - Master dan Struktur Node

Ilustrasi berikut menunjukkan struktur Kubernetes Master dan Node.