Amazon web services 多vpc上的Kubernetes';s

Amazon web services 多vpc上的Kubernetes';s,amazon-web-services,amazon-ec2,kubernetes,amazon-vpc,Amazon Web Services,Amazon Ec2,Kubernetes,Amazon Vpc,2个专有网络: 主专有网络:10.111.0.0/22 主VPC子网包含4个子网: 10.111.0.0/25 10.111.0.128/25 10.111.1.0/25 10.111.1.128/25 第二专有网络:库伯内特斯小型专有网络(172.16.0.0/20) 补充说明: 主专有网络和辅助专有网络使用专有网络对等来实现两个专有网络之间的通信 问题:是否可以在自己的VPC中分离仆从实例/节点/吊舱等,以节省主VPC中的网络空间。如果可能的话,我希望主端点和服务端点在主vpc下运行,这样

2个专有网络:

主专有网络:10.111.0.0/22

主VPC子网包含4个子网:

10.111.0.0/25
10.111.0.128/25
10.111.1.0/25
10.111.1.128/25
第二专有网络:库伯内特斯小型专有网络(172.16.0.0/20)

补充说明: 主专有网络和辅助专有网络使用专有网络对等来实现两个专有网络之间的通信

问题:是否可以在自己的VPC中分离仆从实例/节点/吊舱等,以节省主VPC中的网络空间。如果可能的话,我希望主端点和服务端点在主vpc下运行,这样它们就可以直接路由,而无需通过公共互联网,并且在它们自己的空间中拥有节点/吊舱等,而不会弄乱我们已经很小的ip空间


PS:由于与主要公司网络的ip重叠限制,主VPC地址空间仅为a/22。

一旦定义了可从k8s群集外部访问的服务端点(无论您是否使用或选项),k8s将在群集中的每个节点(也在主节点上)上打开一个服务端口。 集群中的每个节点都运行kube代理,该代理负责将服务端口上的任何请求路由到正在运行的Pod,即使该Pod正在另一个VPC中的完全不同的节点上运行(当然,该节点可以通过对等访问)。 此外,POD运行在与节点的物理网络无关的虚拟网络中,因此POD不会耗尽网络的IP空间,但VPC/网络中的节点数量会耗尽网络的IP空间。 因此,我认为您应该限制IP空间有限的VPC中的节点数量(您可以按照您想要的方式将主节点放置在那里),并将工作节点放置在另一个VPC中

关于POD的节点关联性:您可以将POD分配给特定的工作节点(请参阅)。 例如,您可以将所有的Pod分配给单个VPC中的工作节点,并将任何公共流量路由到另一个VPC中的节点,这将把流量代理给一个正在运行的Pod,但这根本不能解决您的IP空间问题

更新:


关于服务端点:当您配置一个可从k8s集群外部访问的服务时,主节点首先分配一个端口,该端口从那时起为该服务保留。然后在集群中的每个节点(主节点和工作节点)上打开该端口。该端口由kube代理操作,当然它也驻留在每个节点上。kube代理随后负责其余部分,并将来自该端口的传入流量代理到相应服务的运行pod,即使该pod运行在完全不同的节点上(内部k8s通过一些iptables实现)。这意味着您可以将请求发送到集群中任何节点上的该端口(现在称之为
)。您的服务端点基本上是
:/。

,因此您的意思是,通过在主vpc上创建一个主节点,我仍然可以设置我的仆从实例在额外的vpc下运行,“服务端点”是在哪里创建的?它们是在主节点上还是其他什么地方?我提到了服务端点,但没有提到它们是否是实际实例或只是连接到主节点的EIP?关于不同VPC中工作节点和主节点的分离:只要节点彼此之间有路由(如果是对等的非重叠ip VPC,则是这种情况),我看不出它不起作用的原因,但是我必须承认我自己从来没有尝试过。关于服务端点:不适合评论部分。。。请看更新的答案。伟大的答案谢谢!现在唯一的问题是,如果它在不同VPC中的工人上运行,那么他们将无法通过DC从VPN/数据中心路由,因为我们无法宣布类似的172,因为已经有了172个网络,所以对等仅针对VPC1VPC2和VPC 1作为“服务端点”位置。基于这一点,看起来我们需要一段时间才能充分利用它,但我非常感谢你的回答!有关更多信息,请参阅aws指南,以连接多个地区的多个vpc: