Episode ini memandu instalasi Multigress di cluster menggunakan Helm, konfigurasi dasar Gateway dan HTTPRoute, serta verifikasi instalasi, layanan, dan logs untuk memastikan semuanya berjalan dengan benar.

Teori sudah cukup. Episode 3 adalah momen di mana kalian benar-benar menginstall Multigress di cluster dan mengamati dia bekerja. Kita akan memakai Helm untuk menyebarkan komponen, lalu membuat Gateway dan HTTPRoute pertama, dan menutupnya dengan verifikasi instalasi, layanan, dan logs.
Target akhir episode ini sederhana: sebuah request HTTP yang masuk ke gateway berhasil diteruskan ke aplikasi contoh bernama echo. Kalau itu tercapai, semua episode praktik berikutnya punya pijakan yang sama.
Multigress didistribusikan sebagai Helm chart resmi. Pertama, tambahkan repo-nya:
helm repo add multigress https://charts.multigress.io
helm repo updatePerintah helm repo update menarik metadata chart terbaru. Pastikan tidak ada error waktuout — ini tanda awal bahwa koneksi jaringan kalian sehat.
Sekarang install Multigress ke namespace khusus:
helm install multigress multigress/multigress \
--namespace multigress-system \
--create-namespaceFlag --create-namespace membuat namespace multigress-system otomatis jika belum ada. Proses ini membutuhkan pull image untuk controller dan data plane.
kubectl get pods -n multigress-systemTunggu hingga semua pod berstatus Running. Pod multigress-controller adalah control plane, sedangkan pod multigress-proxy adalah data plane yang nanti memproses traffic.
Secara default Gateway API CRD ikut terinstall bersama chart. Pastikan mereka tersedia:
kubectl get crd | grep gateway.networking.k8s.ioOutput harus menampilkan gateways.gateway.networking.k8s.io dan httproutes.gateway.networking.k8s.io. Jika tidak ada, install manual dari rilis resmi Gateway API.
Sebelum mengarahkan traffic, siapkan aplikasi echo sederhana:
kubectl create deployment echo --image=hashicorp/http-echo --replicas=2
kubectl expose deployment echo --port=80 --target-port=5678Aplikasi echo mengembalikan teks JSON yang berisi request yang diterimanya — sangat berguna untuk memverifikasi routing.
Simpan manifest berikut sebagai gateway.yaml:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: main-gateway
namespace: multigress-system
spec:
gatewayClassName: multigress
listeners:
- name: http
protocol: HTTP
port: 80Terapkan dan periksa statusnya:
kubectl apply -f gateway.yaml
kubectl get gateway main-gateway -n multigress-systemKolom STATUS harus menunjukkan Programmed atau Ready. Jika Accepted, berarti listener-nya valid.
Sekarang hubungkan gateway ke aplikasi echo. Simpan sebagai httproute.yaml:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: echo-route
spec:
parentRefs:
- name: main-gateway
namespace: multigress-system
rules:
- backendRefs:
- name: echo
port: 80Route ini menyatakan: semua traffic pada gateway menuju Service echo port 80. Terapkan dan verifikasi:
kubectl apply -f httproute.yaml
kubectl get httproute echo-routePerhatikan status Accepted: True dan ResolvedRefs: True pada detail route.
Ambil alamat gateway, lalu kirim request menggunakan port-forward untuk kesederhanaan:
kubectl port-forward -n multigress-system svc/multigress-proxy 8080:80
curl -s http://localhost:8080Jika semua berjalan, curl -s http://localhost:8080 akan menampilkan respons JSON dari aplikasi echo. Ini bukti bahwa data plane meneruskan traffic dengan benar.
Ketika terjadi masalah, logs adalah sumber pertama yang harus dicek:
kubectl logs -n multigress-system deploy/multigress-controller --tail=50
kubectl logs -n multigress-system deploy/multigress-proxy --tail=50Log controller menampilkan proses penerjemahan konfigurasi, sedangkan log proxy menampilkan aktivitas request. Pola kubectl logs -n multigress-system deploy/multigress-controller --tail=50 akan menjadi teman kalian di seluruh series.
Warning
Jika status Gateway tidak Programmed, periksa apakah gatewayClassName sesuai dengan nilai spec.controllerName dari GatewayClass multigress. Kesalahan paling umum adalah nama class yang tidak sama persis.
Episode 3 menuntaskan langkah pertama yang krusial: Multigress terinstall, Gateway dan HTTPRoute pertama diterapkan, aplikasi echo bisa dijangkau lewat proxy, dan kalian tahu persis ke mana harus melihat ketika sesuatu rusak.
Inti yang harus dibawa pulang:
helm install ke namespace multigress-system.kubectl get untuk status dan curl untuk fungsionalitas.Di episode 4 selanjutnya kita akan mendalami Gateway API dan HTTPRoute — memahami GatewayClass, Gateway, HTTPRoute, TLSRoute, dan ReferenceGrant, mengonfigurasi routing host dan path menuju service backend, serta mode integrasi dengan Service dan Ingress yang sudah ada. Pastikan instalasi episode 3 masih hidup.