Bagikan :
clip icon

Kubernetes Architecture Tutorial: Memahami Komponen Utama dan Cara Kerja Container Orchestration

AI Morfo
foto : Morfogenesis Teknologi Indonesia Creative Team
Kubernetes atau disingkat K8s adalah platform open source yang dirancang untuk mengotomasi deployment, penskalaan, dan manajemen aplikasi yang dikemas dalam container. Arsitekturnya yang terdistribusi memungkinkan perangkat lunak berjalan secara andal di berbagai lingkungan, mulai dari laptop developer, data center on-premise, hingga cloud publik seperti Google Cloud, Amazon Web Services, dan Microsoft Azure. Untuk memaksimalkan potensi Kubernetes, penting bagi engineer dan architect memahami setiap komponen serta interaksi antar bagian di dalam cluster.

Struktur paling dasar Kubernetes terbagi menjadi dua bidang utama: Control Plane dan Node Worker. Control Plane bertugas mengambil keputusan global, seperti penjadwalan aplikasi dan deteksi serta respons terhadap event di dalam cluster. Komponennya antara lain kube-apiserver, etcd, kube-scheduler, kube-controller-manager, dan cloud-controller-manager. Sementara itu, Node Worker menjalankan aplikasi yang dikemas dalam container; di sinilah kubelet, kube-proxy, dan container runtime bekerja. Setiap komponen dikembangkan secara independen, memungkinkan iterasi cepat, pemeliharaan modular, dan peningkatan zero downtime jika diterapkan dengan strategi rolling update yang benar.

kube-apiserver berfungsi sebagai pintu gerbang utama; semua permintaan, baik dari eksternal maupun internal, harus melalui RESTful API ini. etcd menyimpan seluruh data konfigurasi dan status cluster secara konsisten dengan model key-value serta algoritma Raft untuk konsistensi kuat. kube-scheduler memilih node paling optimal berdasarkan kebutuhan resource, kebijakan affinitas, dan batasan kelayakan. kube-controller-manager menjalankan proses loop yang membandingkan status aktual dengan status yang diinginkan, termasuk Node Controller, Replication Controller, dan Endpoints Controller. cloud-controller-manager memungkinkan integrasi spesifik penyedia cloud, contohnya untuk mengelola load balancer eksternal atau persistent volume pada layanan AWS EBS atau GCE PD.

Di sisi Node Worker, kubelet bertindak sebagai agen yang menjamin container berjalan di dalam Pod sesuai spesifikasi yang didefinisikan melalui manifest YAML. kube-proxy memelihara aturan iptables atau IPVS untuk menyediakan virtual network service, sehingga Pod dapat berkomunikasi secara efisien dan terisolasi. Container runtime, seperti containerd, CRI-O, atau Docker Engine, bertanggung jawab menjalankan image menjadi container. Pod, sebagai unit terkecil di Kubernetes, bisa berisi satu atau beberapa container yang saling berbagi storage dan jaringan. ReplicaSet memastikan jumlah Pod yang ditentukan selalu tersedia, sedangkan Deployment menyediarkan fitur rolling update dan rollback untuk aplikasi secara deklaratif.

Untuk memperdalam pemahaman, simulasikan kasus sederhana web server nginx yang harus tersedia 3 replika dengan rolling update. Langkah-langkahnya:
1. Buat berkas deployment.yaml yang mendefinisikan image nginx:stable, replicas:3, dan strategi rollingUpdate dengan maxSurge:1 serta maxUnavailable:0
2. Jalankan kubectl apply -f deployment.yaml sehingga Deployment meminta kube-apiserver menyimpan objek baru ke etcd
3. Deployment Controller mengamati perubahan, lalu membentuk ReplicaSet dengan jumlah replika 3
4. ReplicaSet mengirim permintaan pembuatan Pod; kube-scheduler menempatkan Pod ke Node yang memiliki resource cukup
5. kubelet di Node target menarik image dari registry, lalu container runtime membuat container; kube-proxy memperbarui aturan iptables agar Service dapat meneruskan traffic ke Pod sesuai label selector
6. Ketika melakukan rolling update misalnya ke image nginx:alpine, Deployment akan menaikkan Pod baru versi baru satu per satu, menunggu status Ready, lalu menurunkan Pod lama, sehingga tidak ada downtime.

Konsep penting lainnya adalah Namespace untuk isolasi multi-tenant, ConfigMap dan Secret untuk konfigurasi eksternal, serta PersistentVolume dan PersistentVolumeClaim untuk abstraksi penyimpanan. Liveness Probe serta Readiness Probe menjamin kesehatan aplikasi; jika gagal, kubelet akan me-restart container atau menghapus Pod dari Service. Horizontal Pod Autoscaler (HPA) memanfaatkan metrik CPU atau custom metrics dari Prometheus untuk menaik-turunkan replika otomatis. Network Policy, jika diaktifkan menggunakan plugin CNI yang mendukung, memberikan kontrol akses antar Pod berbasis label selector dan namespace. Dengan pemahaman menyeluruh terhadap setiap lapisan arsitektur ini, tim DevOps dapat merancang solusi yang tangguh, scalable, dan mudah dipelihara.

Ingin migrasi aplikasi monolitik ke microservices dengan Kubernetes namun terkendala kompleksitas? Tim Morfotech.id siap membantu merancang arsitektur, mengotomasi CI/CD, hingga mengelola cluster produksi. Konsultasikan kebutuhan aplikasi Anda melalui WhatsApp +62 811-2288-8001 atau kunjungi https://morfotech.id untuk informasi lebih lanjut.
Sumber:
AI Morfotech - Morfogenesis Teknologi Indonesia AI Team
Senin, September 22, 2025 5:10 PM
Logo Mogi