{"id":48946,"date":"2025-04-02T01:33:52","date_gmt":"2025-04-02T01:33:52","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=48946"},"modified":"2026-02-21T07:27:22","modified_gmt":"2026-02-21T07:27:22","slug":"how-to-setup-kubernetes-aws-gateway-api-controller-on-amazon-eks","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-setup-kubernetes-aws-gateway-api-controller-on-amazon-eks\/","title":{"rendered":"How to setup Kubernetes AWS Gateway API Controller on Amazon EKS?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Step &#8211; Setup Dedicated AWS VPC<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Step &#8211; Deploy EKS <\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Step  &#8211; Installing a Kubernetes Gateway API<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">$ kubectl apply -f https:<span class=\"hljs-comment\">\/\/github.com\/kubernetes-sigs\/gateway-api\/releases\/download\/v1.2.0\/standard-install.yaml<\/span>\n\n$ kubectl api-resources | grep gateway\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"151\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-2-1024x151.png\" alt=\"\" class=\"wp-image-48947\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-2-1024x151.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-2-300x44.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-2-768x113.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-2-1536x226.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-2.png 2012w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step &#8211; AWS Security group Change Requirement<\/h2>\n\n\n\n<p><strong>Amazon VPC Lattice<\/strong> is a <strong>fully managed service<\/strong> by AWS that simplifies service-to-service communication across VPCs and accounts. The <strong>CIDR blocks<\/strong> used by VPC Lattice are <strong>assigned and managed by AWS<\/strong> and are available through <strong>managed prefix lists<\/strong> for both <strong>IPv4<\/strong> and <strong>IPv6<\/strong>.<\/p>\n\n\n\n<p>To allow communication between your workloads (e.g., Pods in EKS) and VPC Lattice services, you must configure <strong>security groups<\/strong>, <strong>network ACLs<\/strong>, or <strong>resource policies<\/strong> to allow traffic from these <strong>AWS-managed prefix lists<\/strong><\/p>\n\n\n\n<p><strong>Prefix List<\/strong>: A <strong>prefix list<\/strong> is a set of <strong>CIDR blocks<\/strong> (e.g., <code>192.0.2.0\/24<\/code> for IPv4 or <code>2001:db8::\/32<\/code> for IPv6) that represent a group of IP addresses.<\/p>\n\n\n\n<p><strong>AWS-managed prefix lists<\/strong> for services like VPC Lattice can be used in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 Security Groups<\/li>\n\n\n\n<li>\u2705 Route Tables<\/li>\n\n\n\n<li>\u2705 Network ACLs<\/li>\n\n\n\n<li>\u2705 Resource Policies<\/li>\n<\/ul>\n\n\n\n<p>Security Groups Created by AWS for EKS<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cluster Security Group (Control Plane to Worker Nodes)<\/li>\n\n\n\n<li>Node Security Group (Worker Nodes)<\/li>\n\n\n\n<li>Fargate Profile Security Group (if using AWS Fargate)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"570\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-1024x570.png\" alt=\"\" class=\"wp-image-48952\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-1024x570.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-300x167.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-768x428.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-1536x856.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-2048x1141.png 2048w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/image-3-355x199.png 355w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<script src=\"https:\/\/gist.github.com\/rajeshkumarin\/4a588420d760d9928305a9d8f3f9fb56.js\"><\/script>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-02-at-11.37.38%E2%80%AFAM-1024x455.png\" alt=\"\" class=\"wp-image-48953\"><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-02-at-11.39.51%E2%80%AFAM-1024x399.png\" alt=\"\" class=\"wp-image-48954\"><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Step &#8211; Setup Dedicated AWS VPC Step &#8211; Deploy EKS Step &#8211; Installing a Kubernetes Gateway API Step &#8211; AWS Security group Change Requirement Amazon VPC Lattice is a fully&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-48946","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=48946"}],"version-history":[{"count":8,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48946\/revisions"}],"predecessor-version":[{"id":58939,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/48946\/revisions\/58939"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=48946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=48946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=48946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}