Memahami Jenis-Jenis Service Kubernetes

Publish date: 2019-07-16
Tags: kubernetes, pod, node

By twahyono

Apa itu Service?

Kubernetes Service, di dalam artikel ini selanjutnya disebut service, digunakan untuk mengarahkan traffic ke aplikasi yang berada di kluster. Seperti diketahui di dalam kluster, pod secara dinamis dikelola oleh Kubernetes control plane, pod bisa muncul dan hilang karena proses penjadwalan dan autoscaling dan menyebabkan alamat IP pod berubah-ubah (ephemeral). Untuk memberikan akses yang konsisten terhadap aplikasi di sekumpulan pod tsb maka diperlukan bentuk service ini. Kubernetes menyediakan 3 jenis service yang bisa digunakan:

1. ClusterIP

ClusterIP akan memberikan satu alamat IP untuk aplikasi yang bisa diakses di lingkungan internal kluster.

IP statis disediakan untuk bisa diakses dari dalam kluster.

2. NodePort

NodePort menyediakan akses pada port statis yang sama di semua node yang selanjutnya traffic akan diarahkan ke aplikasi yang dituju. Saat anda membuat NodePort maka service ClusterIP akan otomatis dibuat juga. NodePort akan mengarahkan traffic menuju ke ClusterIP.

Port 31504 dibuka untuk menyediakan akses ke aplikasi. Aplikasi dapat diakses melalui <NodeIP:NodePort>

3. LoadBalancer

Load balancer memberikan akses dari luar ke dalam aplikasi yang berjalan di dalam kluster dengan mekanisme load balancing. Saat anda membuat service LoadBalancer maka service NodePort dan ClusterIP akan secara otomatis dibuat juga. Mekanisme internal yang terjadi, LoadBalancer akan mengarahkan traffic menuju ke NodePort dan selanjutnya ke ClusterIP. Untuk menggunakan service ini anda harus memiliki kluster Kubernetes yang berjalan cloud provider di AWS, GKE atau AKS. Jika anda menjalankan di lokal anda harus men-setup sendiri load balancer tsb.

IP publik pada load balancer agar aplikasi di dalam kluster bisa diakses dari luar.