
Kubernetes telah menjadi standar industri dalam mengelola container dan aplikasi berbasis cloud. Namun, bagi banyak orang yang baru memulai, dunia Kubernetes bisa terasa rumit karena banyaknya istilah teknis yang digunakan. Artikel ini akan membahas istilah-istilah paling penting di Kubernetes secara singkat namun jelas, untuk membantu kamu memahami dasar-dasarnya sebelum melangkah lebih jauh ke praktik langsung.
1. Pod – Unit Terkecil di Kubernetes
Pod adalah unit paling dasar dalam Kubernetes. Ia berisi satu atau lebih container yang berjalan secara bersamaan dan berbagi resource seperti jaringan dan penyimpanan. Jika kamu terbiasa dengan Docker, maka bayangkan satu Pod seperti satu "wadah" yang bisa berisi beberapa container yang saling bekerja sama.
Misalnya, satu Pod bisa berisi container backend dan sidecar container untuk logging. Karena semua container di dalam satu Pod berbagi IP dan storage, mereka bisa saling berkomunikasi dengan sangat cepat.
2. Service – Akses Stabil ke Pod
Karena Pod bersifat sementara dan bisa berpindah-pindah IP, Kubernetes menyediakan objek bernama Service sebagai jembatan untuk mengakses Pod secara stabil. Service bertindak seperti load balancer internal yang mendistribusikan traffic ke Pod-Pod yang ada di belakangnya.
Terdapat beberapa tipe Service:
-
ClusterIP: Default, hanya bisa diakses dari dalam cluster.
-
NodePort: Membuka akses dari luar dengan mengikat port tertentu pada node.
-
LoadBalancer: Menggunakan load balancer dari provider cloud (misalnya AWS ELB atau GCP Load Balancer) untuk akses dari luar.
3. Ingress – Pintu Masuk HTTP/HTTPS
Ingress adalah komponen yang memungkinkan akses dari luar cluster ke layanan internal melalui protokol HTTP atau HTTPS. Dengan Ingress, kamu bisa mengatur routing berbasis domain atau path URL.
Contohnya, kamu bisa mengatur Ingress agar api.example.com
diarahkan ke Service backend, sementara web.example.com
ke frontend.
4. Helm – Package Manager untuk Kubernetes
Helm adalah alat yang sangat membantu dalam manajemen aplikasi di Kubernetes. Ia berfungsi sebagai package manager, seperti apt
di Ubuntu atau yum
di CentOS. Helm menggunakan sesuatu yang disebut Helm Chart, yaitu template yang mendeskripsikan bagaimana suatu aplikasi harus dideploy ke cluster Kubernetes.
Dengan Helm, kamu bisa dengan mudah menginstall aplikasi kompleks seperti WordPress, MongoDB, atau Prometheus hanya dengan satu perintah.
5. RBAC (Role-Based Access Control) – Keamanan dan Hak Akses
RBAC adalah sistem kontrol akses yang digunakan Kubernetes untuk mengatur siapa yang boleh melakukan apa di dalam cluster. Misalnya, kamu bisa membuat role yang hanya bisa melihat log, atau role yang hanya boleh menghapus Pod di namespace tertentu.
Fitur ini sangat penting untuk menjaga keamanan, terutama dalam tim besar yang memiliki banyak pengguna dengan tanggung jawab berbeda.
6. Namespace – Pengelompokan Resource
Namespace digunakan untuk mengelompokkan resource dalam cluster agar lebih tertata dan aman. Kamu bisa memiliki beberapa namespace seperti:
-
dev
untuk pengembangan -
staging
untuk testing -
production
untuk aplikasi live
Dengan namespace, kamu bisa menerapkan kebijakan isolasi resource, pembatasan akses, dan pengelolaan yang lebih baik.
7. ConfigMap – Menyimpan Konfigurasi Non-Rahasia
ConfigMap memungkinkan kamu menyimpan konfigurasi aplikasi seperti file .env
, setting YAML, atau nilai environment variable. Hal ini memisahkan konfigurasi dari image container, sehingga memudahkan pengelolaan dan update tanpa harus rebuild image.
8. Secret – Menyimpan Data Sensitif
Sama seperti ConfigMap, tapi lebih aman. Secret digunakan untuk menyimpan data sensitif seperti password, token API, atau sertifikat TLS. Kubernetes menyimpannya dalam format base64 dan kamu bisa mengatur siapa yang boleh mengakses Secret tersebut.
9. Deployment – Mengatur Lifecycle Pod
Deployment adalah objek Kubernetes yang bertanggung jawab atas manajemen lifecycle dari Pod. Ia memastikan bahwa jumlah replika Pod tetap sesuai, dan memudahkan proses rolling update atau rollback.
Misalnya, saat kamu merilis versi baru aplikasi, Deployment bisa melakukan update secara bertahap tanpa downtime.
10. StatefulSet – Untuk Aplikasi yang Butuh Identitas Tetap
Berbeda dengan Deployment yang cocok untuk aplikasi stateless, StatefulSet digunakan untuk aplikasi yang membutuhkan identitas tetap, seperti database. Ia memastikan nama host, volume, dan urutan Pod tetap konsisten walau terjadi restart.
Contohnya, jika kamu menjalankan Cassandra, MongoDB, atau Redis cluster, maka StatefulSet adalah pilihan yang lebih tepat.
11. DaemonSet – Pod yang Berjalan di Setiap Node
DaemonSet memastikan bahwa sebuah Pod tertentu berjalan di setiap node dalam cluster. Ini sangat berguna untuk keperluan seperti monitoring, logging, atau agent security.
Misalnya, kamu ingin Fluentd berjalan di semua node untuk mengumpulkan log, maka kamu akan menggunakan DaemonSet.
12. ReplicaSet – Menjaga Jumlah Pod Tetap
ReplicaSet adalah komponen yang bertugas menjaga jumlah Pod tetap sesuai dengan yang ditentukan. Jika sebuah Pod mati, ReplicaSet akan segera membuat penggantinya. Meskipun bisa digunakan langsung, ReplicaSet biasanya dikelola oleh Deployment.
13. Volume – Penyimpanan untuk Pod
Volume adalah cara Kubernetes menyediakan storage yang bisa digunakan oleh container di dalam Pod. Berbeda dengan file system container yang volatile, Volume menyediakan penyimpanan yang persist. Beberapa jenis Volume antara lain:
-
emptyDir: untuk penyimpanan sementara
-
hostPath: akses ke file system node
-
PersistentVolume (PV): untuk storage yang dikelola
-
Cloud Storage: seperti Amazon EBS, Google Persistent Disk, atau Azure Disk
Penutup: Kuasai Dasar, Praktikkan Langsung
Memahami istilah-istilah dasar dalam Kubernetes adalah langkah pertama yang penting sebelum masuk ke praktik nyata. Dengan memahami konsep seperti Pod, Service, Deployment, hingga Helm dan RBAC, kamu akan lebih mudah membangun, mengelola, dan menskalakan aplikasi di atas Kubernetes.
Tapi jangan hanya berhenti di teori—praktik adalah kunci untuk benar-benar menguasai Kubernetes. Karena itu, pelajari lebih dalam dan praktikkan langsung di kelas ADINUSA yang dirancang khusus untuk membantu kamu memahami Kubernetes dari nol hingga mahir.
Inget-inget istilahnya. Pelajari detail dan praktiknya di kelas ADINUSA.
📧 kontak@adinusa.id
📱 +62-811-1123-242