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
- Kubernetes1.36.4
- Gateway APIv1.4.0 standard
- ControllerNGINX Gateway Fabric v2.2.1
- LoadBalancerMetalLB v0.15.2
- TimeAbout 45 min
- Reviewed21 August 2026
Written against the versions above. 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.
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA1001 | 192.168.0.175 | Ubuntu 26.04 LTS | Control Plane Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE01 | 192.168.0.176 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE02 | 192.168.0.177 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE03 | 192.168.0.178 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
Before you start
- The Ingress controllers and Ingress routing rules guides, since this is the API meant to replace them.
- The Custom resources and operators guide: Gateway API is entirely CRDs.
- A way to give the Gateway an external address. MetalLB here.
-
Not in the cluster, and not part of Kubernetes
-
CRDs without a controller, and the status that says so
-
The controller, and an apply that needs --server-side
-
The Gateway: where traffic enters
-
HTTPRoute: attachment, and rewriting without annotations
-
Weights and headers, which Ingress cannot express
-
The role split, enforced