Panduan Linux

Konfigurasi Ingress Controller pada Kubernetes Cluster

Halo guys! Hari ini kita bakal bahas tentang konfigurasi Ingress Controller di Kubernetes Cluster. Pasti kalian udah nggak asing lagi dong sama Kubernetes, yang jadi alat andalan buat manage aplikasi di lingkungan cloud. Nah, Ingress Controller ini punya peran penting buat nge-“routing” traffic dari luar ke dalam cluster. Yuk, kita gali lebih dalam!

Apa itu Ingress Controller?

Jadi, Ingress Controller adalah sebuah komponen yang bertugas mengatur akses ke layanan dalam Kubernetes cluster. Biasanya, kita butuh ini buat ngehandle request HTTP/HTTPS yang masuk dari luar ke service yang ada di dalam cluster. Pake Ingress Controller, kita bisa ngedefine aturan routing (disebut Ingress Resource) buat ngearahin traffic sesuai path atau domain.

Kenapa Butuh Ingress Controller?

Kalian pasti nanya-nanya, “Kenapa sih nggak pake Service aja langsung?” Nah, kalau pake Service (kaya NodePort atau LoadBalancer) memang bisa, tapi kurang fleksibel kalo butuh routing yang lebih kompleks. Misalnya, kita punya dua aplikasi, dan ingin request ke /app1 diarahin ke aplikasi satu, dan /app2 ke aplikasi dua. Nah, itu bisa banget pake Ingress.

Pilih-Pilih Ingress Controller

Ada beberapa pilihan Ingress Controller yang bisa dipake:

  1. Nginx Ingress Controller: Ini yang paling populer. Pakenya Nginx sebagai reverse proxy.
  2. Traefik: Juga keren, fiturnya banyak dan mudah dikonfigurasi.
  3. HAProxy: Buat yang suka performa tinggi dan stabil.
  4. Istio Ingress: Kalau udah pake service mesh Istio, bisa dipake juga nih.

Di artikel ini, kita bakal contohin pake Nginx Ingress Controller, karena banyak dipake dan mudah di-setup.

Step-by-Step Konfigurasi Nginx Ingress Controller

Oke, kita mulai aja step by step-nya. Pastiin kalian udah punya Kubernetes cluster ya! Kalo belum, bisa bikin dulu pake minikube atau cloud provider favorit kalian.

1. Install Nginx Ingress Controller

Pertama, kita install dulu Nginx Ingress Controller-nya. Caranya gampang, tinggal apply manifest dari repositori resmi Nginx Ingress. Bisa pake perintah:

kubectl apply -f <https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.4/deploy/static/provider/cloud/deploy.yaml>

Perhatiin, versinya bisa berubah, jadi cek dulu di dokumentasi resminya ya!

2. Verifikasi Instalasi

Setelah di-install, kita liat dulu apa berhasil atau nggak. Cek pake perintah:

kubectl get pods -n ingress-nginx

Kalo keliatan pod-nya Running, berarti sukses. Kalo nggak, mungkin ada masalah di cluster atau konfigurasinya.

3. Buat Ingress Resource

Nah, sekarang kita buat aturan routingnya. Misalnya, ada dua aplikasi: myapp1 dan myapp2 yang ter-expose lewat service dengan nama yang sama. Kita pake host myapp.example.com, dan /app1 diarahin ke myapp1, /app2 ke myapp2.

Buat file YAML (misalnya ingress.yaml) dengan isi:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /app1
        pathType: Prefix
        backend:
          service:
            name: myapp1
            port:
              number: 80
      - path: /app2
        pathType: Prefix
        backend:
          service:
            name: myapp2
            port:
              number: 80

Terus apply pake kubectl apply -f ingress.yaml.

4. Testing Ingress

Untuk testing, kita bisa pake curl atau nambahin entry di /etc/hosts biar domain myapp.example.com ngarah ke IP Ingress Controller. Dapetin IP-nya pake:

kubectl get services -n ingress-nginx

Liat di bagian EXTERNAL-IP dari service ingress-nginx-controller. Terus, akses pake curl:

curl <http://myapp.example.com/app1>

Kalo konfigurasi bener, harusnya bisa akses ke app1.

Tips & Trik

#Kubernetes #Tutorial