Ingress Controller adalah sebuah komponen dalam sistem manajemen kontainer yang berfungsi sebagai gateway untuk mengelola akses masuk (ingress) ke dalam kluster Kubernetes. Contoh Ingress Controller yang populer adalah Nginx Ingress Controller, Traefik, dan HAProxy Ingress.
Fungsi Umum INGRESS Controller
- Routing dan Load Balancing: Ingress Controller dapat melakukan routing berdasarkan rules tertentu, seperti path atau nama domain, untuk mengarahkan request HTTP/S ke service di dalam kluster. Dan juga berfungsi sebagai load balancing untuk mendistribusikan trafik secara merata di antara beberapa instance service.
- SSL/TLS Termination: Ingress Controller juga dapat menangani terminasi SSL/TLS, mengenkripsi dan mendekripsi trafik yang melewati kluster.
- Virtual Host Routing: Memungkinkan konfigurasi untuk beberapa domain atau host virtual dalam satu kluster, sehingga beberapa aplikasi dapat diakses dengan menggunakan satu alamat IP eksternal.
- Authentication dan Authorization: Beberapa Ingress Controller mendukung mekanisme otentikasi (authentication) dan otorisasi (authorization) untuk mengamankan akses ke aplikasi yang berjalan di dalam kluster.
- Rewrites dan Redirections: Memungkinkan konfigurasi aturan untuk rewrites URL atau melakukan redirection.
Dokumentasi ini adalah langkah-langkah lanjutan dari Implementasi Kubernetes HA Cluster dengan K3s
- Cara Install Helm Packages Manager Kubernetes.
- Cara Install LoadBalancer dengan MetalLB di Kubernetes.
- Cara Install INGRESS Controller dengan NGINX di Kubernetes. << you are in here
- Cara Setting StorageClass dengan LONGHORN di Kubernetes.
- Cara Deploy Manifest Aplikasi di Kubernetes.
- Cara Setting Let’s Encrypt SSL dengan CERT MANAGER di Kubernetes.
Install NGINX Ingress dengan HELM
Pertama, kita tambahkan repo:
$ helm repo add nginx-stable https://helm.nginx.com/stable
Install nginx ingress controller dengan perintah:
$ helm install nginx-ingress nginx-stable/nginx-ingress -n ingress-system --create-namespace --set controller.setAsDefaultIngress=true --debug
NGINX Ingress saya install di dalam namespace ingress-system
.
Verifikasi Instalasi
Cek apakah service nginx ingress controller sudah running:
$ kubectl -n ingress-system get all
NAME READY STATUS RESTARTS AGE
pod/nginx-ingress-controller-7fcf59865-2dqrk 1/1 Running 0 10m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/nginx-ingress-controller LoadBalancer 10.43.39.58 192.168.99.201 80:31166/TCP,443:31731/TCP 10m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx-ingress-controller 1/1 1 1 10m
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-ingress-controller-7fcf59865 1 1 1 10m
Tampilan outputnya akan seperti diatas.