{"id":1797,"date":"2023-12-18T05:59:22","date_gmt":"2023-12-18T05:59:22","guid":{"rendered":"https:\/\/imesh.ai\/blog\/?p=1797"},"modified":"2024-03-19T02:47:57","modified_gmt":"2024-03-19T02:47:57","slug":"kubernetes-gateway-api","status":"publish","type":"post","link":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/","title":{"rendered":"What is Kubernetes Gateway API, and Why do you need it?"},"content":{"rendered":"\n<p>Kubernetes Ingress has been around for a while. It helps to expose services in the cluster to the external world and provides basic traffic routing functionalities. But for advanced networking features, DevOps and architects have to rely on vendors and their CRDs and custom annotations.<\/p>\n\n\n\n<p>If you have ever written custom annotations on NGINX Ingress, you know how tedious the process is. Luckily, Kubernetes Gateway API is here to solve it and some other drawbacks with native Ingress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Kubernetes Gateway API<\/h2>\n\n\n\n<p>Kubernetes Gateway API is a collection of resources that helps to standardize the specifications for implementing Gateway\/Ingress rules in Kubernetes. Gateway API provides resources, such as <em>GatewayClass<\/em>, <em>Gateway<\/em>, and <em>*Route<\/em>, which are also role-delineated (see Fig. A).<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"960\" height=\"540\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Kubernetes-Gateway-API-resources.png\" alt=\"Kubernetes Gateway API resources- Gateway &amp; HTTPRoute\" class=\"wp-image-1798\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Kubernetes-Gateway-API-resources.png 960w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Kubernetes-Gateway-API-resources-300x169.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Kubernetes-Gateway-API-resources-768x432.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Kubernetes-Gateway-API-resources-400x225.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Kubernetes-Gateway-API-resources-800x450.png 800w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Fig.A &#8211; Kubernetes Gateway API resources<\/em><\/p>\n\n\n\n<p>Note that Gateway API only standardizes the specifications; for implementation, DevOps and architects will need an Ingress controller or a service mesh, like <a href=\"https:\/\/imesh.ai\/blog\/what-is-envoy-gateway\/\">Envoy Gateway<\/a> or <a href=\"https:\/\/imesh.ai\/blog\/what-is-istio\/\">Istio<\/a>.<\/p>\n\n\n\n<p>The resources help DevOps and architects to configure basic to advanced networking rules in Kubernetes without relying on vendor-specific CRDs and annotations. There are various <a href=\"https:\/\/gateway-api.sigs.k8s.io\/implementations\/\">implementors and integrators of K8s Gateway API<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Challenges of native Kubernetes Ingress<\/h2>\n\n\n\n<p>Kubernetes Gateway API is introduced to solve some pressing challenges with native <a href=\"https:\/\/imesh.ai\/blog\/kubernetes-nginx-ingress-vs-istio-ingress-gateway\/\">Kubernetes Ingress<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Limited functionality:<\/strong> Native K8s Ingress only provides basic load-balancing functionality. Advanced traffic routing capabilities, such as path-based routing, require DevOps folks to configure tedious custom annotations provided by their respective Ingress controller.<br><\/li>\n\n\n\n<li><strong>Lack of standardization: <\/strong>Vendors providing Ingress controllers have their own annotation specifications. If DevOps has to switch Ingress controllers, they have a learning curve regarding vendor-specific CRDs and annotations. Besides, they will have to rewrite the current vendor\u2019s specifications using the new ones. It takes a reasonable amount of time to write and test annotations before they can be implemented.<br><\/li>\n\n\n\n<li><strong>Single Ingress resource: <\/strong>Usually, in an enterprise, there will be a single Ingress resource,&nbsp; and multiple teams will work on it. An admin will create multiple Ingress objects for various app teams at max, but it is still hard to implement role-based access controls on any object.&nbsp;If proper <a href=\"https:\/\/imesh.ai\/blog\/what-is-kubernetes-rbac-and-why-do-you-need-it\/\">RBAC policies<\/a> are not in place, teams may mess up the route configuration.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Gateway API not only solves the challenges at the Gateway\/Ingress-level, it could also evolve to manage service-to-service\/east-west traffic within the same cluster.<\/p>\n\n\n\n<p>(We have compared Gateway API and Kubernetes Ingress based on 4 dimensions. Check it out here: <a href=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api-vs-ingress\/\">Kubernetes Gateway API vs Kubernetes Ingress<\/a>.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes Gateway API resources and the request flow<\/h2>\n\n\n\n<p>Kubernetes Gateway API provides the following resources that give freedom for IT teams to work on resources that fall under their respective roles:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>GatewayClass <\/em>(infra provider)<\/h3>\n\n\n\n<p>The resource specifies the controller that implements the Gateway API CRDs associated with the class in the cluster. The Gateway API implementation controller is specified using <em>controllerName<\/em>, which then manages the <em>GatewayClass<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>apiVersion: gateway.networking.k8s.io\/v1\nkind: GatewayClass\nmetadata:\n  name: istio\nspec:\n  controllerName: istio.io\/gateway-controller\n<\/code><\/pre>\n\n\n\n<p>In the above sample configuration, <em>GatewayClass<\/em>(es) with the <em>controllerName: istio.io\/gateway-controller <\/em>will be managed by the Istio service mesh.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Gateway <\/em>(Cluster admin\/Architect)<\/h3>\n\n\n\n<p>A <em>Gateway <\/em>resource acts as a network endpoint that gets the traffic inside the cluster, like a cloud load balancer. DevOps or Infra team can add multiple listeners to the external traffic and apply filters, TLS, and traffic forwarding rules. <em>Gateway<\/em> is attached to a <em>GatewayClass <\/em>and is implemented using the respective controller defined in <em>GatewayClass<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>apiVersion: gateway.networking.k8s.io\/v1\nkind: Gateway\nmetadata:\n name: k8s-gateway\n namespace: k8s-gw\nspec:\n gatewayClassName: istio\n listeners:\n   - name: default\n \tport: 80\n \tprotocol: HTTP\n \tallowedRoutes:\n   \t  namespaces:\n     \t    from: All\n<\/code><\/pre>\n\n\n\n<p>In the above <em>Gateway<\/em> resource, <em>gatewayClassName<\/em> refers to the respective <em>GatewayClass<\/em> the resource is attached to, and <em>listeners <\/em>specify that the <em>Gateway <\/em>listens to HTTP traffic on port 80.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>*Route <\/em>(Devs\/DevOps)<\/h3>\n\n\n\n<p>Route resources manage the traffic from the Gateway to the back-end services. Multiple Route resources, such as HTTPRoute, TCPRoute, GRPCRoute, etc., are used to configure the routing rules of the respective traffic from a Gateway listener to a backend service. The app team can configure different path names and Header filters (under the <em>rules <\/em>section in the YAML) in the Route resources to handle the traffic to the backend. Each <em>Route <\/em>can be attached to a single or multiple Gateways as per the requirements, which can be specified under <em>parentRefs<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>apiVersion: gateway.networking.k8s.io\/v1\nkind: HTTPRoute\nmetadata:\n name: k8s-http-route-with-istio\n namespace: with-istio\nspec:\n parentRefs:\n   - name: k8s-gateway\n     namespace: k8s-gw\n rules:\n   - matches:\n       - path:\n           type: PathPrefix\n           value: \/with-istio\n     backendRefs:\n       - name: echoserver-service-with-istio\n         port: 80<\/code><\/pre>\n\n\n\n<p>The <em>rules <\/em>field allows the set of advanced routing behaviors, such as header-based matching, traffic splitting, balancing, etc. The above configuration routes HTTP traffic with the request path <em>\/with-istio <\/em>from the <em>k8s-gateway <\/em>\u2014 to <em>echoserver-service-with-istio <\/em>service on port 80, which is the destination.&nbsp;<\/p>\n\n\n\n<p>Combining the above resources, the request flow in Gateway API would look like this: a request would first come to the Gateway, from which <em>*Route <\/em>applies the routing rules before the request finally ends up on the respective backend service (see Fig. B).<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"960\" height=\"540\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Request-flow-in-Kubernetes-Gateway-API.png\" alt=\"Request flow in Kubernetes Gateway API\" class=\"wp-image-1799\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Request-flow-in-Kubernetes-Gateway-API.png 960w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Request-flow-in-Kubernetes-Gateway-API-300x169.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Request-flow-in-Kubernetes-Gateway-API-768x432.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Request-flow-in-Kubernetes-Gateway-API-400x225.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Request-flow-in-Kubernetes-Gateway-API-800x450.png 800w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Fig. B &#8211; Request flow in Kubernetes Gateway API<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Benefits of K8s Gateway API<\/h2>\n\n\n\n<p>By now, I hope you must be convinced of the role delineation benefits of Kubernetes Gateway API. Let us explore it and some other crucial benefits and features of Gateway API.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"228\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-1024x228.png\" alt=\"Benefits of K8s Gateway API\" class=\"wp-image-1800\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-1024x228.png 1024w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-300x67.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-768x171.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-1536x342.png 1536w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-2048x456.png 2048w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-400x89.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-800x178.png 800w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Benefits-of-K8s-Gateway-API-1160x258.png 1160w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Proper role delineation and RBAC<\/h3>\n\n\n\n<p>The cluster admin no longer needs to worry about developers accidentally introducing any wrong configuration to the Ingress resource, as they do not need to share the <em>Gateway <\/em>resource with anyone. Devs\/DevOps can create <em>*Routes <\/em>and attach them to particular Gateways without distracting other teams\u2019 routes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">No vendor lock-in<\/h3>\n\n\n\n<p>The standardization brought by Gateway API makes it seamless to switch between vendors providing controllers. DevOps and architects can use the same API to configure networking with the new vendor by changing the gatewayClassName in the Gateway resource. Almost all popular Gateway controllers and service meshes support integration with K8s Gateway API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Increased developer experience<\/h3>\n\n\n\n<p>Advanced traffic routing rules can now be configured in <em>*Routes <\/em>in Gateway API,<em> <\/em>which spares developers\/DevOps from writing and rigorously testing vendor-specific CRDs and annotations. Besides, K8s Gateway API allows users to extend it by creating custom resources that suit their unique needs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to implement Kubernetes Gateway API with Istio service mesh<\/h2>\n\n\n\n<p>In the demo below, I have a service deployed in both Istio-enabled and non-Istio namespace. I have used <em>Gateway<\/em> to let the traffic inside the cluster and <em>HTTPRoute <\/em>resource to apply path-based routing for the traffic \u2014 using Istio as the controller.<\/p>\n\n\n\n<p>Watch the tutorial to see Gateway API implementation for north-south traffic with Istio service mesh:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Getting Started With Kubernetes Gateway API Using Istio | Demo | IMESH\" width=\"1130\" height=\"636\" src=\"https:\/\/www.youtube.com\/embed\/Wt9AJJqxqK4?start=582&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Alternatively, you can refer to the blog, <a href=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api-implementation\/\">Kubernetes Gateway API Implementation in 3 Steps<\/a>, where a sample banking application is migrated from Ingress (ingress-nginx) to Kubernetes Gateway API using Istio Ingress.<\/p>\n\n\n\n<p>(As a side note, Istio <a href=\"https:\/\/istio.io\/latest\/blog\/2022\/gateway-api-beta\/#support-for-the-gateway-api-in-istio\">made it clear<\/a> that Gateway API will be Istio\u2019s default API for traffic management in the future.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parting thoughts<\/h2>\n\n\n\n<p>Hope you have a good understanding of Gateway API by now. I deliberately left a few things to mention in this piece, like the <a href=\"https:\/\/gateway-api.sigs.k8s.io\/concepts\/gamma\/\">GAMMA initiative<\/a> and <a href=\"https:\/\/gateway-api.sigs.k8s.io\/api-types\/referencegrant\/\"><em>ReferenceGrant<\/em><\/a>, to make it easier to consume. We\u2019ll go over each concept around Kubernetes Gateway API in detail in the coming days.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes Ingress has been around for a while. It helps to expose<span class=\"excerpt-more\"><\/span><\/p>\n","protected":false},"author":9,"featured_media":1801,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,121],"tags":[53,120],"class_list":["post-1797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-istio-service-mesh","category-kubernetes-gateway-api","tag-istio","tag-kubernetes-gateway-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is Kubernetes Gateway API, and Why do you need it?<\/title>\n<meta name=\"description\" content=\"A non-exhaustive blog for DevOps and cloud architects to get started with Kubernetes Gateway API.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is Kubernetes Gateway API, and Why do you need it?\" \/>\n<meta property=\"og:description\" content=\"A non-exhaustive blog for DevOps and cloud architects to get started with Kubernetes Gateway API.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\" \/>\n<meta property=\"og:site_name\" content=\"IMESH\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-18T05:59:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-19T02:47:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Md Azmal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Md Azmal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\"},\"author\":{\"name\":\"Md Azmal\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/fdb37d3095697308d103c83ffdf37f10\"},\"headline\":\"What is Kubernetes Gateway API, and Why do you need it?\",\"datePublished\":\"2023-12-18T05:59:22+00:00\",\"dateModified\":\"2024-03-19T02:47:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\"},\"wordCount\":1160,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png\",\"keywords\":[\"istio\",\"Kubernetes Gateway API\"],\"articleSection\":[\"Istio service mesh\",\"Kubernetes Gateway API\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\",\"url\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\",\"name\":\"What is Kubernetes Gateway API, and Why do you need it?\",\"isPartOf\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png\",\"datePublished\":\"2023-12-18T05:59:22+00:00\",\"dateModified\":\"2024-03-19T02:47:57+00:00\",\"description\":\"A non-exhaustive blog for DevOps and cloud architects to get started with Kubernetes Gateway API.\",\"breadcrumb\":{\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png\",\"width\":1280,\"height\":720,\"caption\":\"Introduction to Kubernetes Gateway API\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/imesh.ai\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is Kubernetes Gateway API, and Why do you need it?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/imesh.ai\/blog\/#website\",\"url\":\"https:\/\/imesh.ai\/blog\/\",\"name\":\"IMESH Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/imesh.ai\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\",\"name\":\"IMESH\",\"url\":\"https:\/\/imesh.ai\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg\",\"width\":2560,\"height\":1665,\"caption\":\"IMESH\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/imeshai\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/fdb37d3095697308d103c83ffdf37f10\",\"name\":\"Md Azmal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/1563300189291-150x150.jpg\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/1563300189291-150x150.jpg\",\"caption\":\"Md Azmal\"},\"description\":\"Azmal is one of the founding engineers at IMESH, who focuses on boosting enterprise performance and security using Istio and Envoy. He's a versatile full-stack developer skilled in building scalable and performant applications in the cloud. Azmal's interest in cybersecurity and networking has led him to work on various research projects in network security.\",\"sameAs\":[\"https:\/\/imesh.ai\",\"https:\/\/www.linkedin.com\/in\/md-azmal-570308160\"],\"url\":\"https:\/\/imesh.ai\/blog\/author\/azmal-mdimesh-ai\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is Kubernetes Gateway API, and Why do you need it?","description":"A non-exhaustive blog for DevOps and cloud architects to get started with Kubernetes Gateway API.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/","og_locale":"en_US","og_type":"article","og_title":"What is Kubernetes Gateway API, and Why do you need it?","og_description":"A non-exhaustive blog for DevOps and cloud architects to get started with Kubernetes Gateway API.","og_url":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/","og_site_name":"IMESH","article_published_time":"2023-12-18T05:59:22+00:00","article_modified_time":"2024-03-19T02:47:57+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png","type":"image\/png"}],"author":"Md Azmal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Md Azmal","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#article","isPartOf":{"@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/"},"author":{"name":"Md Azmal","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/fdb37d3095697308d103c83ffdf37f10"},"headline":"What is Kubernetes Gateway API, and Why do you need it?","datePublished":"2023-12-18T05:59:22+00:00","dateModified":"2024-03-19T02:47:57+00:00","mainEntityOfPage":{"@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/"},"wordCount":1160,"commentCount":0,"publisher":{"@id":"https:\/\/imesh.ai\/blog\/#organization"},"image":{"@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage"},"thumbnailUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png","keywords":["istio","Kubernetes Gateway API"],"articleSection":["Istio service mesh","Kubernetes Gateway API"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/","url":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/","name":"What is Kubernetes Gateway API, and Why do you need it?","isPartOf":{"@id":"https:\/\/imesh.ai\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage"},"image":{"@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage"},"thumbnailUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png","datePublished":"2023-12-18T05:59:22+00:00","dateModified":"2024-03-19T02:47:57+00:00","description":"A non-exhaustive blog for DevOps and cloud architects to get started with Kubernetes Gateway API.","breadcrumb":{"@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#primaryimage","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png","width":1280,"height":720,"caption":"Introduction to Kubernetes Gateway API"},{"@type":"BreadcrumbList","@id":"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/imesh.ai\/blog\/"},{"@type":"ListItem","position":2,"name":"What is Kubernetes Gateway API, and Why do you need it?"}]},{"@type":"WebSite","@id":"https:\/\/imesh.ai\/blog\/#website","url":"https:\/\/imesh.ai\/blog\/","name":"IMESH Blog","description":"","publisher":{"@id":"https:\/\/imesh.ai\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imesh.ai\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imesh.ai\/blog\/#organization","name":"IMESH","url":"https:\/\/imesh.ai\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMESH-LOGO-scaled.jpg","width":2560,"height":1665,"caption":"IMESH"},"image":{"@id":"https:\/\/imesh.ai\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/imeshai"]},{"@type":"Person","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/fdb37d3095697308d103c83ffdf37f10","name":"Md Azmal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/image\/","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/1563300189291-150x150.jpg","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/1563300189291-150x150.jpg","caption":"Md Azmal"},"description":"Azmal is one of the founding engineers at IMESH, who focuses on boosting enterprise performance and security using Istio and Envoy. He's a versatile full-stack developer skilled in building scalable and performant applications in the cloud. Azmal's interest in cybersecurity and networking has led him to work on various research projects in network security.","sameAs":["https:\/\/imesh.ai","https:\/\/www.linkedin.com\/in\/md-azmal-570308160"],"url":"https:\/\/imesh.ai\/blog\/author\/azmal-mdimesh-ai\/"}]}},"jetpack_featured_media_url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/12\/Introduction-to-Kubernetes-Gateway-API.png","_links":{"self":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/comments?post=1797"}],"version-history":[{"count":5,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1797\/revisions"}],"predecessor-version":[{"id":1972,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1797\/revisions\/1972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/media\/1801"}],"wp:attachment":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/media?parent=1797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/categories?post=1797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/tags?post=1797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}