Skip to main content
πŸŽ“ Claude Code Masterclass Learn AI-assisted development on Udemy β€” plus the companion book on Leanpub & Amazon. Start Learning
Kubernetes Gateway API in production
Platform Engineering

Gateway API in Production Guide

Gateway API has reached GA maturity. How to migrate from Ingress to Gateway API, with practical examples using Envoy Gateway and Cilium.

LB
Luca Berton
Β· 1 min read

Gateway API: The New Standard

Kubernetes Gateway API has reached GA and is rapidly replacing Ingress. If you’re still using Ingress resources in 2026, you’re leaving features on the table.

Why Migrate?

Ingress was designed for simple HTTP routing. Gateway API supports:

  • Multi-protocol: HTTP, gRPC, TCP, UDP, TLS
  • Role-based config: Infrastructure providers, cluster operators, and app developers each manage their own resources
  • Traffic splitting: Native weighted routing for canary deployments
  • Header-based routing: No more implementation-specific annotations

Core Resources

# 1. GatewayClass - defines the controller (infra team)
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: envoy-gateway
spec:
  controllerName: gateway.envoyproxy.io/gatewayclass-controller

# 2. Gateway - defines listeners (platform team)
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: production
  namespace: gateway-system
spec:
  gatewayClassName: envoy-gateway
  listeners:
  - name: https
    protocol: HTTPS
    port: 443
    tls:
      mode: Terminate
      certificateRefs:
      - name: wildcard-cert
    allowedRoutes:
      namespaces:
        from: Selector
        selector:
          matchLabels:
            gateway-access: "true"

# 3. HTTPRoute - defines routing (app team)
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-app
  namespace: app-team
spec:
  parentRefs:
  - name: production
    namespace: gateway-system
  hostnames:
  - "app.example.com"
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /api/v2
    backendRefs:
    - name: app-v2
      port: 8080
      weight: 90
    - name: app-v3
      port: 8080
      weight: 10  # Canary

Choosing Your Implementation

ImplementationBest ForgRPCTCP/UDP
Envoy GatewayNew deployments, full-featuredβœ…βœ…
CiliumeBPF performance, existing Cilium usersβœ…βœ…
IstioService mesh usersβœ…βœ…
NGINX Gateway FabricNGINX familiarityβœ…βŒ

Migration Strategy

  1. Deploy Gateway API CRDs alongside existing Ingress
  2. Create Gateway resources matching your current Ingress config
  3. Migrate routes one service at a time β€” both can coexist
  4. Remove Ingress resources after validation
  5. Leverage new features β€” traffic splitting, header routing, cross-namespace refs

Don’t do a big-bang migration. Gateway API and Ingress coexist peacefully.


Migrating to Gateway API? I help platform teams modernize their Kubernetes networking. Get in touch.\n

Free 30-min AI & Cloud consultation

Book Now