Mengenal Istilah dalam Kubernetes
Eko Susilo Harjo October 25, 2024

Kubernetes telah menjadi platform wajib bagi banyak perusahaan yang ingin mengelola aplikasi container secara efisien. Namun, bagi pemula, istilah-istilah dalam Kubernetes bisa terdengar membingungkan. Artikel ini akan membahas beberapa istilah penting yang sering digunakan dalam dunia Kubernetes. Yuk, kita kupas satu per satu!
1. Pod
Pod adalah unit terkecil di Kubernetes yang dapat dijalankan. Setiap Pod berisi satu atau lebih container yang berbagi jaringan, penyimpanan, dan spesifikasi lainnya. Misalnya, jika Anda memiliki aplikasi web dan database kecil, Anda bisa menjalankannya di dalam satu Pod. Pod ini bisa dibilang seperti “rumah” bagi container-container Anda.
Contoh Kasus: Jika Anda menjalankan aplikasi Node.js di dalam container, maka Pod akan menjadi “pembungkus” yang memudahkan container tersebut berkomunikasi dengan container lain di dalam Pod yang sama.
2. Node
Node adalah mesin fisik atau virtual yang menjalankan Pod. Kubernetes mengelola beberapa Node dalam sebuah cluster untuk menjalankan aplikasi yang terdistribusi. Ada dua jenis Node:
- Master Node: Mengelola kontrol dari seluruh cluster, bertanggung jawab atas penjadwalan Pod, menjaga status, dan lainnya.
- Worker Node: Tempat di mana Pod dan container benar-benar berjalan.
Analogi: Jika cluster Kubernetes adalah pabrik, maka Node adalah mesin-mesin di dalam pabrik yang memproses produk (Pod).
3. Cluster
Cluster adalah kumpulan dari beberapa Node yang dikelola oleh Kubernetes. Semua Node dalam satu cluster dapat bekerja bersama-sama untuk menjalankan aplikasi yang terdistribusi. Dengan menggunakan cluster, Anda dapat memastikan aplikasi tetap berjalan walaupun ada Node yang mengalami kegagalan.
Manfaat: Cluster memungkinkan Anda menjalankan aplikasi dengan skalabilitas tinggi dan menjaga ketersediaan layanan Anda, meskipun terjadi gangguan di salah satu Node.
4. Deployment
Deployment adalah cara untuk mengatur bagaimana Pod dijalankan di Kubernetes. Anda bisa menggunakannya untuk membuat, memperbarui, atau menghapus Pod secara otomatis. Deployment juga memberikan kemampuan untuk melakukan rolling updates—mengganti versi lama dengan versi baru tanpa mengganggu layanan.
Contoh: Misalnya, Anda memiliki aplikasi versi 1.0 dan ingin memperbarui ke versi 1.1. Dengan Deployment, Kubernetes akan secara bertahap mengubah Pod ke versi terbaru tanpa menghentikan aplikasi.
5. Service
Service adalah cara untuk mengekspos aplikasi yang berjalan di dalam Pod agar bisa diakses dari luar atau dalam cluster. Service memberikan alamat IP tetap dan nama DNS untuk Pod, sehingga Pod yang baru dibuat dapat diakses menggunakan alamat yang sama.
Kasus Nyata: Misalkan Anda memiliki aplikasi web yang berjalan di Pod dan ingin aplikasi tersebut bisa diakses pengguna, maka Anda bisa membuat Service untuk mengatur load balancing dan eksposur IP-nya.
6. Namespace
Namespace adalah cara untuk memisahkan sumber daya di dalam satu cluster Kubernetes. Ini berguna untuk mengelola beberapa proyek dalam satu cluster tanpa campur aduk. Namespace memungkinkan Anda mengelompokkan sumber daya yang terkait dalam satu lingkungan, seperti development
, staging
, dan production
.
Contoh: Jika Anda memiliki aplikasi yang sama dengan tiga tahap pengembangan, maka setiap tahap bisa menggunakan Namespace yang berbeda agar tidak saling mengganggu.
7. ConfigMap
ConfigMap digunakan untuk menyimpan konfigurasi yang dibutuhkan aplikasi di dalam Pod, seperti variabel lingkungan. Dengan ConfigMap, Anda dapat mengubah konfigurasi tanpa perlu membuat ulang image Docker atau Pod.
Penggunaan: Jika Anda ingin menyimpan informasi seperti URL database atau API key secara terpisah dari container, ConfigMap adalah solusi yang tepat.
8. Secret
Mirip dengan ConfigMap, tetapi Secret digunakan untuk menyimpan data sensitif seperti password, token API, atau sertifikat. Data dalam Secret dienkripsi, sehingga lebih aman daripada ConfigMap.
Best Practice: Sebaiknya gunakan Secret untuk data sensitif agar tidak mudah diakses oleh pihak yang tidak berkepentingan.
9. Ingress
Ingress adalah objek Kubernetes yang mengatur rute lalu lintas HTTP dan HTTPS dari luar cluster ke Service di dalamnya. Dengan Ingress, Anda bisa mengatur rute URL dan mengelola akses ke aplikasi berbasis web yang berjalan di dalam cluster.
Manfaat: Ingress memungkinkan Anda mengatur URL yang berbeda untuk setiap aplikasi dalam cluster, sehingga lebih mudah diakses oleh pengguna.
10. PersistentVolume (PV) dan PersistentVolumeClaim (PVC)
- PersistentVolume (PV): Merupakan penyimpanan yang disediakan oleh administrator cluster atau penyedia cloud, yang dapat digunakan oleh Pod.
- PersistentVolumeClaim (PVC): Adalah cara bagi Pod untuk meminta penyimpanan dari PersistentVolume. PVC memastikan bahwa aplikasi yang berjalan di Pod dapat menyimpan data secara persisten, meskipun Pod tersebut dihapus atau dipindahkan.
Ilustrasi: PV seperti hard disk di komputer Anda, sementara PVC adalah permintaan dari aplikasi untuk menggunakan ruang di hard disk tersebut.
Penutup
Memahami istilah-istilah dalam Kubernetes adalah langkah awal yang penting untuk menguasai platform ini. Dengan memahami konsep seperti Pod, Node, dan lainnya, Anda bisa lebih mudah mengelola dan menjalankan aplikasi yang terdistribusi. Semoga panduan ini membantu Anda dalam perjalanan mempelajari Kubernetes!
Discover more from teknologi now
Subscribe to get the latest posts sent to your email.