CertGrid CertGrid
Hands-on Lab·Certified Kubernetes Administrator

Gateway API

Ingress replaced with three objects owned by three different people, plus weighted splits and header matching without a single annotation. The status conditions on a Gateway and an HTTPRoute are the whole diagnostic surface.

Services and Networking Guide 60 of 103 Advanced

Gateway API is a set of CRDs on its own release cycle, independent of Kubernetes. The controller here supports a slightly older version than the CRDs installed, which the GatewayClass reports.

MetalLB is installed from the bare-metal LoadBalancer guide, so the Gateway gets a real external address rather than a node port.
Server NameIP AddressOSRolesCPURAMHDD
CKA1001192.168.0.175Ubuntu 26.04 LTSControl Plane Node2 Core4 GB50 GB
CKA1001-NODE01192.168.0.176Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE02192.168.0.177Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE03192.168.0.178Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

This guide includes

Use this when Ingress cannot express what you need - weighted splits, header matching - or when routing has to be owned by more than one team. This matters because Gateway API splits one object into three with different owners, and then enforces that split.

Before you start

  1. Not in the cluster, and not part of Kubernetes

  2. CRDs without a controller, and the status that says so

  3. The controller, and an apply that needs --server-side

  4. The Gateway: where traffic enters

  5. HTTPRoute: attachment, and rewriting without annotations

  6. Weights and headers, which Ingress cannot express

  7. The role split, enforced

Official sources