Kubernetes menjalankan aplikasi kontainer di kluster mesin dan menyimpannya dalam status yang dideskripsikan. Hal ini dilakukan dengan menempatkan pekerjaan di mesin yang tepat, merutekan lalu lintas ke tempat yang tepat, serta mengawasi kegagalan dan perubahan.
Alur dasar
1. Anda mendeskripsikan apa yang ingin dijalankan
Sebagian besar beban kerja Kubernetes dimulai dengan “status yang diinginkan” yang dideklarasikan (apa yang harus dijalankan, jumlah salinan, dan cara memaparkannya). Kubernetes dibangun mengikuti konfigurasi deklaratif dan otomatisasi.
2. Kubernetes memutuskan lokasinya harus dijalankan
Kubernetes menjadwalkan kontainer ke mesin di kluster berdasarkan sumber daya komputasi yang tersedia dan kebutuhan setiap kontainer. Kontainer berjalan di dalam Pod, yaitu unit yang ditempatkan Kubernetes di mesin.
3. Kubernetes terus membandingkan status aktual dengan status yang Anda inginkan
Pengontrol mengawasi kluster dan bekerja untuk mendekatkan status saat ini ke status yang diinginkan, menggunakan server API untuk membuat perubahan.
Penjadwalan kontainer dan manajemen sehari-hari
Penjadwalan adalah “di mana hal ini harus dijalankan?” keputusan.
1. Pod dijadwalkan, bukan kontainer individu
Kubernetes mengelompokkan kontainer ke dalam Pod, lalu menempatkan Pod tersebut di mesin.
2. Penjadwal menetapkan Pod ke node yang sesuai
Kube-scheduler mencari Pod yang belum ditetapkan dan memilih node untuknya.
3. Agen node menjaga Pod tetap berjalan
Di setiap node, kubelet memastikan Pod berjalan (termasuk kontainernya).
Penyeimbangan beban dan penemuan layanan
Kontainer dan Pod dapat dibuat, dipindahkan, atau diganti, sehingga aplikasi memerlukan cara yang stabil untuk menemukan satu sama lain.
Penemuan layanan dan penyeimbangan beban adalah perilaku bawaan
Kubernetes mengelola penemuan layanan dan menggunakan penyeimbangan beban sehingga lalu lintas dapat dirutekan, meskipun Pod berubah seiring waktu.
Layanan menyediakan alamat stabil untuk rangkaian Pod yang berubah
API Layanan menyediakan alamat IP yang stabil atau nama host untuk layanan yang didukung oleh satu atau beberapa Pod, dan Kubernetes melacak Pod pendukung melalui objek EndpointSlice.
Pembaruan perutean lalu lintas saat Pod berubah
Saat Pod di balik layanan berubah, perutean layanan beradaptasi sehingga lalu lintas terus mencapai backend saat ini.
Menskalakan aplikasi (dan alasan “status yang diinginkan” penting)
Kubernetes dapat menskalakan beban kerja ke status yang Anda tetapkan, termasuk penskalaan berdasarkan pemanfaatan komputasi.
Ide penskalaan umum meliputi:
Lebih banyak replika (lebih banyak Pod) untuk menangani permintaan yang lebih tinggi.
Lebih sedikit replika saat permintaan turun.
Pelacakan sumber daya sehingga keputusan penempatan mencerminkan kebutuhan CPU dan memori.
Ini kembali ke model “status yang diinginkan”: Anda menentukan targetnya, dan pengontrol terus bekerja mencapai target tersebut.
Pemulihan mandiri: Hal yang terjadi ketika terjadi kerusakan
Kubernetes mencakup perilaku pemulihan mandiri yang bertujuan untuk memelihara kesehatan dan ketersediaan beban kerja. Jenis ini meliputi:
Memulai ulang kontainer yang gagal (mulai ulang tingkat kontainer).
Mengganti Pod yang gagal untuk menyimpan jumlah replika yang diminta (penggantian replika).
Menjadwalkan ulang beban kerja saat node tidak tersedia.
Menghapus Pod yang gagal dari titik akhir layanan sehingga lalu lintas hanya menuju ke Pod yang sehat (penyeimbangan beban untuk layanan).
Pemulihan mandiri memeriksa kesehatan kontainer dan memulai ulang atau mereplikasinya saat masalah terjadi.
Peran KPI Kubernetes
Indikator kinerja utama (KPI, atau metrik) digunakan untuk memahami kesehatan kluster dan perilaku beban kerja.
Dari mana KPI berasal
Komponen sistem Kubernetes mengeluarkan metrik (format Prometheus) yang berguna untuk dasbor dan peringatan.
Metrik biasanya tersedia di titik akhir HTTP komponen/metrik, termasuk komponen seperti kube-apiserver, kube-scheduler, kubelet, kube-proxy, dan kube-controller-manager.
Contoh hal yang dapat diungkap KPI
Sinyal kesehatan kluster (metrik dan pola kesalahan tingkat komponen)
Stabilitas beban kerja (misalnya, mulai ulang atau penggantian yang sering)
Tekanan kapasitas (alokasi vs. permintaan sumber daya, terkait dengan keputusan penskalaan)
Mengapa hal ini penting dalam operasional sehari-hari
Pemantauan memberi tim pandangan yang lebih lengkap tentang sumber daya kluster, Kubernetes API, kontainer, dan log, sehingga memperpendek perulangan umpan balik antara masalah dan perbaikan.