EKS托管节点组节点的静态IP地址

0

【以下的问题经过翻译处理】 首先,我是 EKS 的新手。我的客户询问如何控制 EKS 中托管节点组中节点的出口 IP。他们使用了“非托管节点”(我认为 EKS 文档称之为自我管理),但他们想开始使用托管节点组,但他们需要控制节点的 IP 以允许设置防火墙规则以限制本地访问属于特定服务的特定 pod。他们询问托管节点组的自动缩放是否会造成这个问题,如果确实如此,他们是否应该尽可能使用不缩放的托管组,或者混合使用托管节点和非托管节点。但是 IP 必须在底层节点重启后仍然存在。

我的想法是自动缩放本身不是问题。如果他们愿意为这个托管节点组提供特定的子网,我们可以用这种方式预测 IP。让我们假设这不是他们想要的。接下来,我在想 Calico 或许能够帮助控制出口 IP 范围。但是从我在 Calico 文档上读到的内容看来,您可能需要以覆盖模式运行 Calico 才能控制出口 IP。对于受管节点组来说,这是否可行对我来说是模糊的,但我想那是行不通的。如果我们可以限制流向 NAT 网关的流量,或许可以解决这个问题,但考虑到您不能在 NGW 上使用 SG,这似乎无济于事。 印花布文档链接: https://docs.projectcalico.org/getting-started/kubernetes/managed-public-cloud/eks

简而言之,我们是否可以轻松控制托管节点组的出口 IP?如果是,具体如何?尽可能多地分享有关如何分享的信息,我们将不胜感激。需要明确的是,他们认为集群的服务可信度较低,因此我们不能只信任集群中的所有内容,他们的防火墙必须能够区分来自这一服务/托管节点组的流量。

更新: 我从一位同事那里听到了一个答案,将 PrivateLink 与 NLB 一起使用,然后在防火墙规则中使用 NLB IP,每个子网一个。请参阅白皮书链接第 14 页的混合服务部分。 https://d1.awsstatic.com/whitepapers/aws-privatelink.pdf

profile picture
专家
已提问 5 个月前9 查看次数
1 回答
0

【以下的回答经过翻译处理】 控制一组 pod 的出口 IP 的最简单方法是使用 VPC CNI 自定义网络使用 NAT 网关。 在VPC中,指定一个或多个单独的内部子网(最好每个AZ一个),仅用于这些pod。(如果不单独预留子网,就无法实现这种方案。)创建适当的 ENIConfig CRD 以将这些 pod 映射到子网。然后,在同一个 AZ 的一个或多个独立的公共子网中,创建一个 NAT 网关,使用一个预先创建的弹性IP作为NAT网关的IP地址。 从每个内部子网创建一个默认路由到同一AZ中的NAT网关。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则