A real-world account of migrating a production Kubernetes cluster from ingress-nginx to Gateway API using kgateway. Covers why kgateway was chosen over alternatives (Envoy Gateway, Cilium, Traefik, nginx Gateway Fabric), how to use the ingress2gateway translation tool, and how to achieve zero-downtime cutover via weighted DNS with external-dns. Also details behavioral differences to expect: WebSocket upgrade requirements, upstream connection pooling issues, and rate limiting differences. Includes operational lessons around ArgoCD sync ordering, cert-manager namespace topology, and running the controller at multiple replicas.

8m read timeFrom fairwinds.com
Post cover image
Table of contents
Why Gateway APIWhy kgatewayTranslating Ingress to Gateway APIMoving Traffic Safelykgateway Behaviors That Differ From nginxLessons from the MigrationKeeping Kubernetes Current
46.8K Impressions