2

我当前的设置涉及一个 EKS 集群,该集群具有跨私有子网中许多不同 EKS 节点的多个命名空间(多租户)。我希望来自 pod 的出口流量在每个命名空间都有一个专用的 EIP。AFAIK 没有针对此问题的现成解决方案。我在互联网上搜索了很长时间,但徒劳无功。以下是一些我已经厌倦但最终遇到障碍的解决方案

  1. Istio Egress Gateway 允许您通过专用的 egress gateway pod 引导来自 pod 的所有出站流量。但是出口网关 pod 将假定它正在运行的节点的 ip,这不适用于我的用例。此外,我还没有找到关于如何跨多个节点设置多个出口网关 pod 的体面文档。

  2. Calico Egress Gateway 与 Istio Egress Gateway 解决方案非常相似,并且适用相同的约束

  3. 自定义解决方案 我已经开始实施自定义解决方案,我在公共子网中设置了多个网关节点,每个网关节点都有一个专用的 EIP。我现在可以修改私有 EKS 节点中的 ip 路由/网关,以通过基于 pod 源 ip 的特定网关节点路由流量。这个解决方案感觉很笨拙,而且这种解决方案的运营开销非常高

  4. 我看过像https://github.com/nirmata/kube-static-egress-ip这样的解决方案,但没有任何运气

这个问题有更好的方法/解决方案吗?

ps:我的生产集群非常大,我无法为每个命名空间站起来一个集群。

4

1 回答 1

0

我认为 Calico Enterprise 会通过为命名空间分配 IP 来解决这个特定的用例。从这个博客"[Egress Gateway] defines a static egress IP for SNAT on traffic leaving the cluster and applies it to a specific namespace. Then it designates one pod in a namespace as the egress pod and assigns a routable IP which is used specifically for egress traffic leaving the cluster."

你介意 +1 这个功能请求吗?https://github.com/aws/containers-roadmap/issues/1319

于 2021-11-05T22:29:09.157 回答