EKS 是否支持 kubenet 或某种类型的虚拟网络来获取更多 IP space?

Does EKS supports kubenet or some type of virtual network to get more IP space?

我公司给我们的子网非常小(比如 30 个 IP 地址)。默认情况下,在 K8 中,每个节点都会获得大量分配给它的 IP,并且每个 pod 都会获得一个 IP,因此只有 30 个 IP 可用于 运行 K8 集群。我需要数百个,特别是大约 400 个或更多才能建立这个集群。我从未使用过 EKS,这就是我们将要使用的。经过一些研究,我发现 Azure 中的 AKS 可以使用 kubenet 建立虚拟网络(这样你就可以拥有你需要的所有 IP),所以即使是一个小的子网,Kubernetes 仍然可以运行。该文档从 Azure 方面 https://docs.microsoft.com/en-us/azure/aks/configure-kubenet 对其进行了很好的解释。

我还在研究 EKS 是否使用 kubenet,目前还没有找到任何东西。对于我可以在 EKS 中使用以获得更多 IP 的虚拟服务器或插件的任何反馈,我将不胜感激 space.

您无法找到有关使用 kubenet 的 EKS 的信息,因为 kubenet 在 AWS 中有一个重大限制,而 Azure 中没有。使用 kubenet 的 EKS 理论上限制为 50 个集群节点,因为 kubenet 依赖 VPC 路由 table 来访问其他 EKS 节点。由于 AWS 将 VPC 路由上的路由数量 table 限制为 50,因此 EKS 节点的数量理论上为 50(如果考虑互联网流量的默认路由或到其他 EC2 实例的路由,则更少)

在 AKS (Azure) 中,子网的 UDR 限制为 250(254 - 4 由 Azure 保留)。

EKS 部署时默认启用 CNI 插件。您可以通过使用自定义网络启用 CNI 来绕过小子网限制,这允许您拥有与 kubenet 相同类型的 IP 伪装(即 pods 的单独内部 kubernetes 网络 NAT 到EKS EC2 节点接口)。

下面是一个很好的描述: https://medium.com/elotl-blog/kubernetes-networking-on-aws-part-i-99012e938a40