Cilium Gateway API
Cilium als Gateway API controller: Gateway- en HTTPRoute-resources worden afgehandeld door Cilium's ingebouwde Envoy proxy. Geen aparte ingress controller nodig.
Voorkennis: 21-gateway-api-crds.md — CRDs moeten al geïnstalleerd zijn.
1. Check vóór je begint
Draai op de <beheer-vm> (vanaf repo root). Alles moet kloppen voordat je de Helm upgrade doet.
# Nodes
kubectl get nodes
# CoreDNS (cluster DNS)
kubectl get pods -n kube-system -l k8s-app=kube-dns
kubectl get svc -n kube-system kube-dns
# Cilium (op alle nodes)
kubectl get pods -n kube-system -l k8s-app=cilium -o wide
# Hubble Relay (optioneel, voor observability)
kubectl get pods -n kube-system -l k8s-app=hubble-relay
# Gateway API CRDs (moeten bestaan)
kubectl get crd | grep gateway.networking.k8s.io
# Verwacht: 5 CRDs (gatewayclasses, gateways, httproutes, grpcroutes, referencegrants)
→ Alleen doorgaan als nodes Ready zijn, CoreDNS en Cilium draaien, en de vijf Gateway CRDs bestaan.
2. Helm values
In cluster-config/infra/cilium/values.yaml staat al:
gatewayAPI:
enabled: true
Geen wijziging nodig tenzij je Gateway expliciet uit wilt zetten.
3. Cilium upgraden (Gateway controller aanzetten)
Vanaf de <beheer-vm>, in de homelab repo root:
# Repo updaten (als je wijzigingen hebt gepullt)
git pull
# Helm repo toevoegen/updaten (eenmalig of bij Cilium upgrade)
helm repo add cilium https://helm.cilium.io/
helm repo update
# Upgrade uitvoeren
helm upgrade cilium cilium/cilium -n kube-system \
-f cluster-config/infra/cilium/values.yaml
Cilium pods kunnen even herstarten; korte onderbreking van netwerkverkeer is mogelijk.
4. Verificatie
# GatewayClass "cilium" moet bestaan en Accepted
kubectl get gatewayclass
# Voorbeeld output:
# NAME CONTROLLER ACCEPTED AGE
# cilium io.cilium/gateway-controller True 1m
Optioneel: Cilium-operator en -pods controleren:
kubectl get pods -n kube-system -l k8s-app=cilium -o wide
kubectl get pods -n kube-system -l io.cilium/app=operator
5. Volgende stap
Na succesvolle verificatie: Stap 3 – MetalLB (20-stappenplan-gitops.md). MetalLB geeft een extern IP aan de LoadBalancer Service die een Gateway later aanmaakt.
Referenties / Lees verder
NOTE – Lees verder: Cilium Gateway API en Gateway API (officieel).
| Onderwerp | Link |
|---|---|
| Cilium Gateway API | docs.cilium.io |
| Gateway API | gateway-api.sigs.k8s.io |