[{"data":1,"prerenderedAt":405},["ShallowReactive",2],{"blog-post-blog_en-kubernetes-gateway-api-networking-neu-gedacht":3},{"id":4,"title":5,"body":6,"cover":390,"date":391,"description":392,"draft":393,"extension":394,"meta":395,"navigation":396,"path":397,"seo":398,"stem":399,"tags":400,"__hash__":404},"blog_en\u002Fen\u002Fblog\u002Fkubernetes-gateway-api-networking-neu-gedacht.md","Kubernetes Gateway API: Networking Reimagined",{"type":7,"value":8,"toc":385},"minimark",[9,22,27,33,61,83,90,94,110,113,353,360,364,381],[10,11,12,13,17,18,21],"p",{},"The classic Ingress resource has shaped Kubernetes networking for years. With the ",[14,15,16],"strong",{},"Gateway API",", which reached GA status with version 1.0 (October 2023) and now stands at version 1.3, a significantly more powerful successor is available. At the same time, SIG Network has announced that ",[14,19,20],{},"Ingress-NGINX will move to best-effort maintenance starting March 2026",".",[23,24,26],"h2",{"id":25},"what-is-the-gateway-api","What is the Gateway API?",[10,28,29,30,32],{},"The ",[14,31,16],{}," is a collection of Kubernetes resources that provide a more expressive and extensible networking model. Unlike Ingress, the Gateway API natively supports:",[34,35,36,43,49,55],"ul",{},[37,38,39,42],"li",{},[14,40,41],{},"HTTP routing"," with header-based matching, path rewriting, and traffic splitting",[37,44,45,48],{},[14,46,47],{},"TLS termination and re-encryption"," at the gateway level",[37,50,51,54],{},[14,52,53],{},"Role-oriented design"," - Infrastructure teams manage Gateways, application teams define Routes",[37,56,57,60],{},[14,58,59],{},"Extensibility"," through standardized extension points instead of proprietary annotations",[10,62,63,64,67,68,67,71,74,75,78,79,82],{},"Version 1.3 (June 2025) introduced further capabilities including ",[14,65,66],{},"percentage-based request mirroring",", ",[14,69,70],{},"CORS filters",[14,72,73],{},"Gateway merging",", and ",[14,76,77],{},"retry budgets",". The ",[14,80,81],{},"Ingress2Gateway"," tool (v1.0, March 2026) simplifies migration of existing Ingress resources.",[10,84,85],{},[86,87],"img",{"alt":88,"src":89},"Comparison: Ingress vs. Gateway API","\u002Fimg\u002Fblog\u002Fkubernetes-gateway-api-vergleich.png",[23,91,93],{"id":92},"differences-from-ingress","Differences from Ingress",[10,95,96,97,100,101,67,104,74,107,21],{},"A key difference lies in the ",[14,98,99],{},"separation of concerns",". While Ingress bundles all configuration into a single resource, the Gateway API distributes responsibilities across three levels: ",[14,102,103],{},"GatewayClass",[14,105,106],{},"Gateway",[14,108,109],{},"HTTPRoute",[10,111,112],{},"A typical HTTPRoute definition:",[114,115,120],"pre",{"className":116,"code":117,"language":118,"meta":119,"style":119},"language-yaml shiki shiki-themes github-light github-dark","apiVersion: gateway.networking.k8s.io\u002Fv1\nkind: HTTPRoute\nmetadata:\n  name: app-route\n  namespace: production\nspec:\n  parentRefs:\n    - name: main-gateway\n  hostnames:\n    - \"app.example.com\"\n  rules:\n    - matches:\n        - path:\n            type: PathPrefix\n            value: \u002Fapi\n      backendRefs:\n        - name: api-service\n          port: 8080\n          weight: 90\n        - name: api-service-canary\n          port: 8080\n          weight: 10\n","yaml","",[121,122,123,140,151,160,171,182,190,198,212,220,228,236,246,257,268,279,287,299,311,322,334,343],"code",{"__ignoreMap":119},[124,125,128,132,136],"span",{"class":126,"line":127},"line",1,[124,129,131],{"class":130},"s9eBZ","apiVersion",[124,133,135],{"class":134},"sVt8B",": ",[124,137,139],{"class":138},"sZZnC","gateway.networking.k8s.io\u002Fv1\n",[124,141,143,146,148],{"class":126,"line":142},2,[124,144,145],{"class":130},"kind",[124,147,135],{"class":134},[124,149,150],{"class":138},"HTTPRoute\n",[124,152,154,157],{"class":126,"line":153},3,[124,155,156],{"class":130},"metadata",[124,158,159],{"class":134},":\n",[124,161,163,166,168],{"class":126,"line":162},4,[124,164,165],{"class":130},"  name",[124,167,135],{"class":134},[124,169,170],{"class":138},"app-route\n",[124,172,174,177,179],{"class":126,"line":173},5,[124,175,176],{"class":130},"  namespace",[124,178,135],{"class":134},[124,180,181],{"class":138},"production\n",[124,183,185,188],{"class":126,"line":184},6,[124,186,187],{"class":130},"spec",[124,189,159],{"class":134},[124,191,193,196],{"class":126,"line":192},7,[124,194,195],{"class":130},"  parentRefs",[124,197,159],{"class":134},[124,199,201,204,207,209],{"class":126,"line":200},8,[124,202,203],{"class":134},"    - ",[124,205,206],{"class":130},"name",[124,208,135],{"class":134},[124,210,211],{"class":138},"main-gateway\n",[124,213,215,218],{"class":126,"line":214},9,[124,216,217],{"class":130},"  hostnames",[124,219,159],{"class":134},[124,221,223,225],{"class":126,"line":222},10,[124,224,203],{"class":134},[124,226,227],{"class":138},"\"app.example.com\"\n",[124,229,231,234],{"class":126,"line":230},11,[124,232,233],{"class":130},"  rules",[124,235,159],{"class":134},[124,237,239,241,244],{"class":126,"line":238},12,[124,240,203],{"class":134},[124,242,243],{"class":130},"matches",[124,245,159],{"class":134},[124,247,249,252,255],{"class":126,"line":248},13,[124,250,251],{"class":134},"        - ",[124,253,254],{"class":130},"path",[124,256,159],{"class":134},[124,258,260,263,265],{"class":126,"line":259},14,[124,261,262],{"class":130},"            type",[124,264,135],{"class":134},[124,266,267],{"class":138},"PathPrefix\n",[124,269,271,274,276],{"class":126,"line":270},15,[124,272,273],{"class":130},"            value",[124,275,135],{"class":134},[124,277,278],{"class":138},"\u002Fapi\n",[124,280,282,285],{"class":126,"line":281},16,[124,283,284],{"class":130},"      backendRefs",[124,286,159],{"class":134},[124,288,290,292,294,296],{"class":126,"line":289},17,[124,291,251],{"class":134},[124,293,206],{"class":130},[124,295,135],{"class":134},[124,297,298],{"class":138},"api-service\n",[124,300,302,305,307],{"class":126,"line":301},18,[124,303,304],{"class":130},"          port",[124,306,135],{"class":134},[124,308,310],{"class":309},"sj4cs","8080\n",[124,312,314,317,319],{"class":126,"line":313},19,[124,315,316],{"class":130},"          weight",[124,318,135],{"class":134},[124,320,321],{"class":309},"90\n",[124,323,325,327,329,331],{"class":126,"line":324},20,[124,326,251],{"class":134},[124,328,206],{"class":130},[124,330,135],{"class":134},[124,332,333],{"class":138},"api-service-canary\n",[124,335,337,339,341],{"class":126,"line":336},21,[124,338,304],{"class":130},[124,340,135],{"class":134},[124,342,310],{"class":309},[124,344,346,348,350],{"class":126,"line":345},22,[124,347,316],{"class":130},[124,349,135],{"class":134},[124,351,352],{"class":309},"10\n",[10,354,355,356,359],{},"This route directs traffic for ",[121,357,358],{},"\u002Fapi"," to two backend services - 90 percent to the stable version, 10 percent to the canary version. Such traffic splits require external tools or controller-specific annotations with Ingress.",[23,361,363],{"id":362},"why-this-matters","Why This Matters",[10,365,366,367,67,370,67,373,376,377,380],{},"With the phased retirement of Ingress-NGINX and growing support from implementations such as ",[14,368,369],{},"Istio",[14,371,372],{},"Envoy Gateway",[14,374,375],{},"NGINX Gateway Fabric",", and the ",[14,378,379],{},"AWS Load Balancer Controller",", the Gateway API is becoming the new standard for Kubernetes networking. The role-oriented architecture enables a clearer separation between platform and application teams - a decisive advantage in larger organizations.",[382,383,384],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":119,"searchDepth":142,"depth":142,"links":386},[387,388,389],{"id":25,"depth":142,"text":26},{"id":92,"depth":142,"text":93},{"id":362,"depth":142,"text":363},"\u002Fimg\u002Fblog\u002Fkubernetes-gateway-api-cover.jpg","2026-04-07","The Gateway API replaces Ingress as the standard for Kubernetes networking with a more expressive, role-oriented model.",false,"md",{},true,"\u002Fen\u002Fblog\u002Fkubernetes-gateway-api-networking-neu-gedacht",{"title":5,"description":392},"en\u002Fblog\u002Fkubernetes-gateway-api-networking-neu-gedacht",[401,16,402,403],"Kubernetes","Cloud-Native","DevOps","tPMitMSJjOfZwoU1Qt9NyxjEygGRSpIHAunRDNvgOio",1775680578309]