Arsitektur Kubernetes: Semua yang Perlu Anda Ketahui di 2022
Diterbitkan: 2021-01-05Daftar isi
Tentang Kubernetes
Kubernetes adalah platform open-source dengan fitur-fitur seperti maksimalisasi sumber daya, proses penerapan dan pembaruan otomatis, penskalaan otomatis, penyembuhan sendiri, rollback dan peluncuran otomatis, dan penyeimbangan beban orkestra kontainer, dan penemuan layanan, mulai ulang otomatis, penempatan otomatis, dan auto-replikasi, dll. Kubernetes bukan hanya orkestra kontainer; itu juga merupakan OS untuk aplikasi berbasis cloud.
Ini seperti platform untuk menjalankan aplikasi yang mirip dengan aplikasi lain yang berjalan di Windows, MacOS, atau Linux dengan fleksibilitas yang lebih besar. Ini mengurangi beban pengaturan dan memungkinkan pengembang untuk sepenuhnya fokus pada alur kerja yang berpusat pada wadah untuk tujuan operasi swalayan. Pengembang memiliki keuntungan dari otomatisasi tingkat tinggi dalam penerapan dan manajemen aplikasi. Itu dapat diintegrasikan dengan lingkungan apa pun untuk meningkatkan kemampuan.
Baca: Gaji Kubernetes di India
Arsitektur Kubernetes
Arsitektur Kubernetes terdiri dari lapisan: Lapisan atas dan lapisan bawah. Dalam individu ini, mesin fisik atau virtual disatukan menjadi sebuah cluster. Jaringan bersama digunakan untuk komunikasi antara setiap server. Kubernetes memiliki satu master (setidaknya) yang bertindak sebagai bidang kontrol, sistem penyimpanan terdistribusi. Beberapa node cluster juga dikenal sebagai Kubelet.
- Master Kubernetes, control plane, menjadwalkan penerapan, mengekspos API, dan mengelola cluster Kubernetes secara keseluruhan.
- Node cluster menjalankan runtime container, agen untuk berkomunikasi dengan master, dan komponen pemantauan lainnya, logging, dll.
Arsitektur Kubernetes dan komponen Kubernetes diilustrasikan pada gambar di bawah ini.
Sumber

Mari kita lihat komponen Kubernetes .
Komponen Kubernetes
Master: Pesawat Kontrol Kubernetes
Master menyimpan data setiap objek di Kubernetes. Karena mengelola seluruh cluster, maka disebut sebagai Master. Ini mengontrol status objek, mempertahankan kecocokan status nyata sistem dengan status yang diperlukan, merespons perubahan, dll.
Ini berisi tiga komponen penting berikut:
- Kube- Server API: Server API Kubernetes
- Kube- Scheduler: Penjadwalan Pod di node pekerja
- Kube- Controller: Mengelola replikasi pod
Jika ada beberapa node master, maka komponen ini direplikasi di semua node master.
Orkestrasi siklus hidup untuk berbagai aplikasi yang mencakup pembaruan, penskalaan, dll. Dilakukan oleh Server API. Ini berfungsi sebagai gateway untuk klien yang tidak berada dalam cluster. Server API melakukan otentikasi. Itu juga bertindak seperti perantara untuk pod dan node.
Controller melakukan tugas-tugas berikut:
- Menjalankan loop kontrol inti
- Membuat perubahan untuk status mengemudi menuju status yang diperlukan.
- Menonton status cluster
Ia juga menawarkan perutean, layanan penyimpanan, penyeimbangan beban, layanan jaringan DNS, instans VM dengan mengintegrasikan ke cloud publik. Kontroler berbeda yang mendorong status untuk penskalaan otomatis, node, layanan dan pod, ruang nama.
Penjadwalan container di seluruh node dilakukan oleh Scheduler di dalam cluster; mempertimbangkan batasan/jaminan sumber daya yang berbeda, atau spesifikasi anti-afinitas/afinitas.
Taksonomi Control Plane Kubernetes ditunjukkan di bawah ini:
Sumber
Node Cluster: Kubelets
Kubelet adalah mesin berbeda yang bertanggung jawab untuk menjalankan container. Master melakukan pengelolaan node cluster. Itu juga disebut Minion. Node cluster dianggap sebagai pengontrol utama Kubernetes. Ini menggerakkan Docker, lapisan eksekusi kontainer.
Ini berisi komponen-komponen berikut:
- Pod: Kelompok kontainer
- Docker: Teknologi berbasis container, ruang pengguna OS
- Kubelet: Agen kontainer yang bertanggung jawab untuk memelihara kumpulan pod.
- Kube-proxy: Merutekan lalu lintas yang masuk ke node dari layanan.
Taksonomi Cluster Node Kubernetes ditunjukkan di bawah ini:
Sumber
Pod dan Layanan
Pod adalah konsep penting di Kubernetes yang digunakan developer untuk berinteraksi. Ini mewakili proses yang sedang berjalan. Itu dapat meng-host tumpukan aplikasi yang terintegrasi secara vertikal seperti aplikasi WordPress LAMP. Diberikan di bawah ini adalah jenis pod yang berbeda:
Jenis Pod | Kegunaan |
Set Replika | Jenis Pod sederhana Memastikan berjalannya pod tetap |
Penyebaran | Manajemen pod cara deklaratif melalui ReplicaSet![]() Pembaruan bergulir dan mekanisme pengembalian disertakan. |
StatefulSet | Mengelola pod yang seharusnya bertahan |
daemonset | Memastikan setiap node menjalankan instance pod. Mengelola layanan cluster seperti penerusan log dan pemantauan kesehatan. |
CronJob dan Pekerjaan | Menjalankan pekerjaan yang berumur pendek sebagai penjadwal |
Sebuah pod dapat terdiri dari sejumlah container dan volume eksternal. Taksonomi pod ditunjukkan pada diagram di bawah ini:
Sumber
Layanan melakukan pelacakan Pod. Untuk mendefinisikan pod dan asosiasi layanan, selektor atau label digunakan sebagai ganti penetapan alamat IP. Ini menyederhanakan penambahan pod ke layanan dan rilis versi baru. Berikut ini adalah jenis layanan yang berbeda:
Jenis Layanan | Kegunaan |
ClusterIP | Jenis Bawaan; Mengekspos layanan pada IP internal dan membuat layanan dapat dijangkau |
NodePort | Memungkinkan pengembang mengatur penyeimbang beban mereka sendiri |
LoadBalancer | Mengotomatiskan konfigurasi mereka |
Nama Eksternal | Biasanya digunakan untuk membuat layanan di dalam Kubernetes. |
Penyebaran cloud khas yang digunakan adalah jenis LoadBalancer. Kubernetes mendukung abstraksi Ingress tingkat tinggi untuk menyelesaikan kompleksitas. Pengguna dapat menampilkan layanan yang berbeda dalam alamat IP yang sama dengan menggunakan penyeimbang beban yang sama.
Baca selengkapnya: Openshift Vs Kubernetes: Perbedaan Openshift & Kubernetes
Jaringan Kubernetes
Sebagian besar CNI (Container Network Interface) digunakan untuk mengaburkan jaringan dasar. Calico, opsi yang dirutekan sepenuhnya, juga dapat digunakan. Dalam kedua opsi tersebut, komunikasi dilakukan pada jaringan pod seluruh cluster dan dikendalikan oleh Calico atau Flannel (penyedia CNI). Kontainer dapat berkomunikasi dalam pod melalui localhost tanpa batasan apa pun. Perpindahan dari sumber eksternal ke layanan atau pod ke layanan dilakukan melalui proxy Kube.
Penyimpanan Persisten
Direktori yang memiliki beberapa data disebut sebagai Volume di Kubernetes. Direktori dapat diakses oleh pod. Ada banyak jenis penyimpanan di Kubernetes. Wadah di dalam pod dapat menggunakan penyimpanan apa pun. Layanan cloud publik seperti NFS, Amazon Elastic Block Store, Iscsi, CephFS, dll. digunakan untuk memasang file dan memblokir penyimpanan ke pod. PV (PersistentVolumes) adalah objek di seluruh cluster yang terkait dengan sumber daya penyimpanan yang ada.
Dalam namespace, permintaan konsumsi penyimpanan dimulai oleh PersistentVolumeClaim. Status PV yang berbeda tersedia, terikat, dirilis, dan gagal. StorageClasses adalah lapisan abstraksi. Ini membedakan kualitas penyimpanan yang mendasarinya dan memisahkan berbagai karakteristik. Pod dapat meminta penyimpanan baru secara dinamis dengan bantuan StorageClasses dan PersistentVolumeClaim.
Sumber
Layanan Penemuan dan Penerbitan
Bergantung pada versi cluster, Kubernetes bergantung pada Kube-DNS atau CoreDNS untuk menemukan layanan. Layanan DNS terintegrasi ini membuat, memperbarui, dan menghapus catatan DNS. Ini membantu aplikasi untuk menargetkan pod dan layanan lain melalui skema penamaan yang konsisten dan sederhana.
Contoh ( Sumber )
Untuk layanan Kubernetes, data DNS dapat berupa service.namespace.svc.cluster.local
Catatan DNS, sebuah pod dapat memiliki: 10.32.0.125.namespace.pod.cluster.local
Sumber
Ruang nama
Cluster Fisik yang berisi cluster virtual disebut Namespaces. Ini menyediakan lingkungan virtual terpisah untuk beberapa pengguna bersama dengan hak akses masing-masing untuk objek Kubernetes.
Label
Label digunakan untuk membedakan sumber daya yang ada dalam satu namespace. Atribut didefinisikan oleh pasangan kunci atau nilai. Label digunakan untuk memetakan struktur organisasi di atas objek Kubernetes. Ini dapat menggambarkan lingkungan, status rilis, tingkat aplikasi, atau identifikasi pelanggan. Ini mencegah tautan keras objek.
Anotasi
Anotasi digunakan untuk menambahkan bagasi atau metadata tak dikenal yang sewenang-wenang ke objek. Ini digunakan sebagai alat konfigurasi deklaratif.

Harus Dibaca: Kubernetes Vs. Docker: Perbedaan Utama yang Harus Anda Ketahui
Dapatkan gelar Rekayasa Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
Kesimpulan
Teknologi Kubernetes berkembang pesat, dan merupakan solusi hemat biaya untuk masa depan. Ini menawarkan stabilitas besar untuk aplikasi.
Semua konsep dasar arsitektur Kubernetes dan komponen Kubernetes dijelaskan dalam artikel ini.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang Kubernetes, data besar, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Tumpukan Penuh yang dirancang untuk para profesional yang bekerja dan menawarkan 500+ jam pelatihan ketat, 9+ proyek, dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
