Skip to main content
🎀 Speaking at KubeCon EU 2026 Lessons Learned Orchestrating Multi-Tenant GPUs on OpenShift AI View Session
🎀 Speaking at Red Hat Summit 2026 GPUs take flight: Safety-first multi-tenant Platform Engineering with NVIDIA and OpenShift AI Learn More
Platform Engineering

Gateway API in Production: Replacing Ingress Controllers in 2026

Luca Berton β€’ β€’ 1 min read
#kubernetes#gateway-api#networking#envoy#cloud-native

\n## πŸšͺ 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

Share:

Luca Berton

AI & Cloud Advisor with 18+ years experience. Author of 8 technical books, creator of Ansible Pilot, and instructor at CopyPasteLearn Academy. Speaker at KubeCon EU & Red Hat Summit 2026.

Luca Berton Ansible Pilot Ansible by Example Open Empower K8s Recipes Terraform Pilot CopyPasteLearn ProteinLens TechMeOut