{"id":1858,"date":"2024-01-16T08:33:04","date_gmt":"2024-01-16T08:33:04","guid":{"rendered":"https:\/\/imesh.ai\/blog\/?p=1858"},"modified":"2024-08-20T05:53:09","modified_gmt":"2024-08-20T05:53:09","slug":"migrating-ingress-to-kubernetes-gateway-api","status":"publish","type":"post","link":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/","title":{"rendered":"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy"},"content":{"rendered":"\n<p>Migrating the Ingress resources all at once is not recommended. Instead, DevOps and architects should implement a gradual rollout strategy to ensure a smooth switch from Ingress to <a href=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api\/\">Kubernetes Gateway API<\/a>.<\/p>\n\n\n\n<p>Here, let us briefly go through the reasons why you should migrate. Then, we will see the 3 R\u2019s strategy to migrate from Ingress to Gateway API, without causing downtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why should you migrate from Ingress to Gateway API<\/h2>\n\n\n\n<p>Kubernetes Ingress is officially frozen; new developments with respect to Ingress configuration will happen in Gateway API CRDs. Since there is no kind <em>Ingress <\/em>in the Gateway API, DevOps managers and architects will need to make the switch from Ingress, eventually.<\/p>\n\n\n\n<p>Migrating from Ingress is justified even if we compare the capabilities of both Ingress and Gateway API CRDs. Gateway API far outweighs Ingress in the following aspects:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-vs-Gateway-API-tabular-comparison.png\" alt=\"tabular comparison between Ingress and Gateway API\" class=\"wp-image-1860\" style=\"aspect-ratio:1.7777777777777777;width:741px;height:auto\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-vs-Gateway-API-tabular-comparison.png 1024w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-vs-Gateway-API-tabular-comparison-300x169.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-vs-Gateway-API-tabular-comparison-768x432.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-vs-Gateway-API-tabular-comparison-400x225.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-vs-Gateway-API-tabular-comparison-800x450.png 800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Better RBAC and Multitenancy: <\/strong>Unlike Ingress \u2014 which is a single resource without proper role separation \u2014 Gateway API CRDs have a role-oriented design which makes them a good fit for multitenant, shared Kubernetes clusters.&nbsp;<br><\/li>\n\n\n\n<li><strong>Standard, controller-independent specifications: <\/strong>Ingress needs to be configured with annotations except for basic routing functionalities. The annotations are controller-dependent and are not portable across implementations. Gateway API standardizes the specifications for basic and advanced network management without annotations while providing seamless portability across a variety of Ingress controller and service mesh implementations.<strong><br><\/strong><\/li>\n\n\n\n<li><strong>Advanced traffic management: <\/strong>Gateway API CRDs provide out-of-the-box support for advanced routing configurations, like header modification, canary and blue-green rollout, etc. Unlike Ingress, DevOps managers and architects can have multiple backends per route in Gateway API and configure network rules without writing and testing tedious custom annotations.<strong><br><\/strong><\/li>\n\n\n\n<li><strong>Extensibility: <\/strong>Ingress is extensible with annotations, but the scope is limited since annotations are just strings of key-value pairs. Gateway API allows extensibility with custom filters, policies, and CRDs.<\/li>\n<\/ul>\n\n\n\n<p>Check out the blog <a href=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api-vs-ingress\/\">Kubernetes Gateway API vs Ingress<\/a> to learn more about each of the above points with examples.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The 3 R\u2019s migration strategy: research, rollout, repeat<\/h2>\n\n\n\n<p>The migration strategy we are sharing here is not specific to any implementation. It focuses on a phased rollout approach for a safer switch from Ingress to Gateway API. Needless to say, DevOps and architects need a solid understanding of Ingress and the Gateway API CRDs to carry out a successful migration.<\/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\/2024\/01\/3-Rs-migration-strategy-to-migrate-from-Ingress-to-Gateway-API.png\" alt=\"3 R's migration strategy to migrate from Ingress to Gateway API\" class=\"wp-image-1864\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/3-Rs-migration-strategy-to-migrate-from-Ingress-to-Gateway-API.png 960w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/3-Rs-migration-strategy-to-migrate-from-Ingress-to-Gateway-API-300x169.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/3-Rs-migration-strategy-to-migrate-from-Ingress-to-Gateway-API-768x432.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/3-Rs-migration-strategy-to-migrate-from-Ingress-to-Gateway-API-400x225.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/3-Rs-migration-strategy-to-migrate-from-Ingress-to-Gateway-API-800x450.png 800w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Step #1: Research<\/h3>\n\n\n\n<p>The research phase entails questions DevOps and architects need to ask regarding Gateway API feasibility and application scope, while planning the migration.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gateway API feasibility<\/h4>\n\n\n\n<p>There can be 2 scenarios with respect to migration \u2014 either the DevOps team wants to adopt Gateway API CRDs with the current Ingress controller, or they want to implement the CRDs using a new controller.&nbsp;<\/p>\n\n\n\n<p>In the latter case, it is important to research <a href=\"https:\/\/gateway-api.sigs.k8s.io\/implementations\/\">Ingress controller and service mesh implementations for Gateway API<\/a> and finalize one. The team should also be clear about configuring Ingress rules with Gateway API CRDs.<\/p>\n\n\n\n<p>So the questions to ask are,<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Which vendor to consider in case of migrating to a new Ingress controller?<\/li>\n\n\n\n<li>How to map current Ingress configurations to equivalent concepts in Gateway API?<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Application scope<\/h4>\n\n\n\n<p>DevOps and architects should be wary of changes that can happen to the application or infrastructure with Gateway API migration. For example, there can be controller-dependent features that need to be implemented with Gateway API.&nbsp;<\/p>\n\n\n\n<p>At the time of writing this, <em>RequestHeaderModifier<\/em> and <em>RequestRedirect <\/em>HTTP filter types are in core supported features, and <em>RequestMirror<\/em>, <em>ResponseHeaderModifier<\/em>, and <em>UrlRewrite <\/em>are in extended support.<br><\/p>\n\n\n\n<p>So, following are some questions to ask in this stage:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How to migrate implementation-specific features?<\/li>\n\n\n\n<li>Should deployment strategies be changed?<\/li>\n\n\n\n<li>Is the migration going to change the current infra and request flow? If yes, how?<\/li>\n\n\n\n<li>How to ensure appropriate RBAC policies with Gateway API resources at different levels?<\/li>\n<\/ul>\n\n\n\n<p>Asking these questions and gathering insights will save a lot of trouble during the actual migration. Once it is done, proceed to rollout.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #2: Rollout<\/h3>\n\n\n\n<p>This is where the actual migration happens. DevOps and architects can start the migration by making a POC.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Create a proof of concept (POC) with non-critical workloads<\/h4>\n\n\n\n<p>Take a few non-critical workloads in the dev environment and rewrite their Ingress configuration with Gateway API resources. You can deploy a few services in a separate test environment for the POC so they don\u2019t interfere with your current workflows.<\/p>\n\n\n\n<p>If you plan to migrate to a new controller, use it in this phase to implement Gateway API. Make sure that controller-dependent features can be implemented using the new controller. Check if the Ingress configurations are working well for the services and move ahead to the next step.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Start progressive delivery in the dev cluster using the canary rollout strategy<\/h4>\n\n\n\n<p>Migrate more workloads in the dev cluster to Gateway API. Shift traffic from Ingress to Gateway API using the canary deployment strategy. That is, let the Ingress and Gateway API resources coexist and use an external load balancer to route the traffic between the two (see the image below).<\/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\/2024\/01\/canary-rollout-between-Ingress-and-Gateway-API.png\" alt=\"canary rollout between Ingress and Gateway API\" class=\"wp-image-1865\" srcset=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/canary-rollout-between-Ingress-and-Gateway-API.png 960w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/canary-rollout-between-Ingress-and-Gateway-API-300x169.png 300w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/canary-rollout-between-Ingress-and-Gateway-API-768x432.png 768w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/canary-rollout-between-Ingress-and-Gateway-API-400x225.png 400w, https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/canary-rollout-between-Ingress-and-Gateway-API-800x450.png 800w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/figure>\n<\/div>\n\n\n<p>Route most of the traffic to the Ingress and a small portion to the Gateway API. You may start by routing 10% of the total traffic routed to your service, through Gateway API. Test any additional filters, matching rules, and extensions (if any) in the Gateway API routes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Test and validate<\/h4>\n\n\n\n<p>Throughout the rollout process, DevOps and architects need to ensure that the controller-specific configurations and features achieved with Ingress can also be achieved with Gateway API. You can also test RBAC policies with Gateway API for further fine-grained security.<\/p>\n\n\n\n<p>Continue testing the APIs after migration and if metrics and logs are fine, gradually increase the traffic percentage to Gateway API. Perform load testing and other benchmarking measurements to leave no room for errors. Based on the confidence in the performance and behavior of Gateway API, release it completely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step #3: Repeat<\/h3>\n\n\n\n<p>The stage involves repeating the steps taken in the rollout stage but in the staging and production environment. The configurations will mostly be the same, except for changes in the naming. DevOps and architects can first start with the staging environment and then move on to migrate production workloads.&nbsp;<\/p>\n\n\n\n<p>You need to perform rigorous testing and performance benchmarking to prevent any downtime. The rollout and repeat stages follow a clean-up process, where the Ingress resources are decommissioned after Gateway API handles 100% of the traffic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes Gateway API migration in action<\/h2>\n\n\n\n<p>Watch the following video to see a demo on how to shift traffic from Ingress to K8s Gateway API and implement it:<\/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=\"Migrating from Ingress to Kubernetes Gateway API | Demo | Nginx Ingress | Istio Ingress\" width=\"1130\" height=\"636\" src=\"https:\/\/www.youtube.com\/embed\/KKBBZgaGo-A?start=351&#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>The demo shows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A sample banking application deployed and exposed through Ingress using the Nginx Ingress controller. <\/li>\n\n\n\n<li>Later, Gateway API CRDs are used to expose the same application, and the traffic is gradually shifted from Ingress to Gateway API using a load balancer. <\/li>\n\n\n\n<li>For the demo, Istio Ingress is used for Gateway implementation.<\/li>\n<\/ul>\n\n\n\n<p>You can also go through it in the blog, <a href=\"https:\/\/imesh.ai\/blog\/kubernetes-gateway-api-implementation\/\">Kubernetes Gateway API Implementation in 3 Steps<\/a>. Feel free to <a href=\"mailto:contact@imesh.ai\">get in touch<\/a> if you need help with the implementation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Migrating the Ingress resources all at once is not recommended. Instead, DevOps<span class=\"excerpt-more\"><\/span><\/p>\n","protected":false},"author":10,"featured_media":1867,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[121],"tags":[57,120],"class_list":["post-1858","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes-gateway-api","tag-kubernetes","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>Ingress to Kubernetes Gateway API Migration \u2014 The 3R\u2019s Strategy<\/title>\n<meta name=\"description\" content=\"Learn the research-rollout-repeat strategy to migrate from Kubernetes Ingress resource to Gateway API CRDs, without causing downtime.\" \/>\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\/migrating-ingress-to-kubernetes-gateway-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ingress to Kubernetes Gateway API Migration \u2014 The 3R\u2019s Strategy\" \/>\n<meta property=\"og:description\" content=\"Learn the research-rollout-repeat strategy to migrate from Kubernetes Ingress resource to Gateway API CRDs, without causing downtime.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/\" \/>\n<meta property=\"og:site_name\" content=\"IMESH\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-16T08:33:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-20T05:53:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pulak Das\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pulak Das\" \/>\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\/migrating-ingress-to-kubernetes-gateway-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/\"},\"author\":{\"name\":\"Pulak Das\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/13792df637b7c676b353e85f12d3f6c1\"},\"headline\":\"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy\",\"datePublished\":\"2024-01-16T08:33:04+00:00\",\"dateModified\":\"2024-08-20T05:53:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/\"},\"wordCount\":1178,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png\",\"keywords\":[\"kubernetes\",\"Kubernetes Gateway API\"],\"articleSection\":[\"Kubernetes Gateway API\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/\",\"url\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/\",\"name\":\"Ingress to Kubernetes Gateway API Migration \u2014 The 3R\u2019s Strategy\",\"isPartOf\":{\"@id\":\"https:\/\/imesh.ai\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png\",\"datePublished\":\"2024-01-16T08:33:04+00:00\",\"dateModified\":\"2024-08-20T05:53:09+00:00\",\"description\":\"Learn the research-rollout-repeat strategy to migrate from Kubernetes Ingress resource to Gateway API CRDs, without causing downtime.\",\"breadcrumb\":{\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png\",\"width\":1024,\"height\":576,\"caption\":\"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/imesh.ai\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy\"}]},{\"@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\/13792df637b7c676b353e85f12d3f6c1\",\"name\":\"Pulak Das\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/imesh.ai\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMG_20230222_170121-150x150.jpg\",\"contentUrl\":\"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMG_20230222_170121-150x150.jpg\",\"caption\":\"Pulak Das\"},\"description\":\"Pulak is the Istio and Envoy expert in IMESH. He is a front-end developer passionate about open-source software, design, and typography. His scientific interests as a computer science graduate are at the systems level: operating systems and programming languages.\",\"sameAs\":[\"https:\/\/imesh.ai\"],\"url\":\"https:\/\/imesh.ai\/blog\/author\/pulak-dasimesh-ai\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ingress to Kubernetes Gateway API Migration \u2014 The 3R\u2019s Strategy","description":"Learn the research-rollout-repeat strategy to migrate from Kubernetes Ingress resource to Gateway API CRDs, without causing downtime.","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\/migrating-ingress-to-kubernetes-gateway-api\/","og_locale":"en_US","og_type":"article","og_title":"Ingress to Kubernetes Gateway API Migration \u2014 The 3R\u2019s Strategy","og_description":"Learn the research-rollout-repeat strategy to migrate from Kubernetes Ingress resource to Gateway API CRDs, without causing downtime.","og_url":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/","og_site_name":"IMESH","article_published_time":"2024-01-16T08:33:04+00:00","article_modified_time":"2024-08-20T05:53:09+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png","type":"image\/png"}],"author":"Pulak Das","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Pulak Das","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#article","isPartOf":{"@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/"},"author":{"name":"Pulak Das","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/13792df637b7c676b353e85f12d3f6c1"},"headline":"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy","datePublished":"2024-01-16T08:33:04+00:00","dateModified":"2024-08-20T05:53:09+00:00","mainEntityOfPage":{"@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/"},"wordCount":1178,"commentCount":0,"publisher":{"@id":"https:\/\/imesh.ai\/blog\/#organization"},"image":{"@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage"},"thumbnailUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png","keywords":["kubernetes","Kubernetes Gateway API"],"articleSection":["Kubernetes Gateway API"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/","url":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/","name":"Ingress to Kubernetes Gateway API Migration \u2014 The 3R\u2019s Strategy","isPartOf":{"@id":"https:\/\/imesh.ai\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage"},"image":{"@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage"},"thumbnailUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png","datePublished":"2024-01-16T08:33:04+00:00","dateModified":"2024-08-20T05:53:09+00:00","description":"Learn the research-rollout-repeat strategy to migrate from Kubernetes Ingress resource to Gateway API CRDs, without causing downtime.","breadcrumb":{"@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#primaryimage","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png","width":1024,"height":576,"caption":"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy"},{"@type":"BreadcrumbList","@id":"https:\/\/imesh.ai\/blog\/migrating-ingress-to-kubernetes-gateway-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/imesh.ai\/blog\/"},{"@type":"ListItem","position":2,"name":"Ingress to Kubernetes Gateway API Migration \u2014 The 3 R\u2019s Strategy"}]},{"@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\/13792df637b7c676b353e85f12d3f6c1","name":"Pulak Das","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imesh.ai\/blog\/#\/schema\/person\/image\/","url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMG_20230222_170121-150x150.jpg","contentUrl":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2023\/03\/IMG_20230222_170121-150x150.jpg","caption":"Pulak Das"},"description":"Pulak is the Istio and Envoy expert in IMESH. He is a front-end developer passionate about open-source software, design, and typography. His scientific interests as a computer science graduate are at the systems level: operating systems and programming languages.","sameAs":["https:\/\/imesh.ai"],"url":"https:\/\/imesh.ai\/blog\/author\/pulak-dasimesh-ai\/"}]}},"jetpack_featured_media_url":"https:\/\/imesh.ai\/blog\/wp-content\/uploads\/2024\/01\/Ingress-to-Kubernetes-Gateway-API-Migration-\u2014-The-3Rs-Strategy.png","_links":{"self":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1858","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/comments?post=1858"}],"version-history":[{"count":4,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1858\/revisions"}],"predecessor-version":[{"id":2121,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/posts\/1858\/revisions\/2121"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/media\/1867"}],"wp:attachment":[{"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/media?parent=1858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/categories?post=1858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imesh.ai\/blog\/wp-json\/wp\/v2\/tags?post=1858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}