【以下的问题经过翻译处理】 首先,我是 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