kubernetes 对于AWS NLB,基于IP的目标类型与基于示例的目标类型之间的实际差异是什么?

wrrgggsh  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(3)|浏览(156)

我正在使用AWS NLB将我的Kubernetes Pod暴露到互联网。NLB当前使用的是instance目标类型,但我注意到还有IP目标类型。从实际的Angular 来看,instance目标类型与IP目标类型之间有什么区别?你什么时候会用一个而不是另一个?
AWS的文档指定了一些关于使用IP目标类型的限制,即它们必须在某些CIDR和最大值的限制范围内,但我试图了解您何时可能希望使用其中一种。
我不知道它是否有任何影响,但我们在kubernetes rollingUpdate部署中遇到了问题,我们看到Pod在切换时停机(我们在那里检查了livenessreadiness)。

eaf3rand

eaf3rand1#

使用IP目标类型的三个关键用例:

  • 您的目标不一定是示例-任何具有私有IP地址的东西都可以工作,包括内部负载平衡,VPC私有服务,Fargate容器,数据库,通过VPN的内部服务器。
  • 您的目标可以在不同的地域,只要您的私有网络之间有跨地域对等即可
  • 您的示例上有多个网络接口,因此您可以在它们之间加载和分发流量,例如:例如,单个示例上不同应用被绑定到不同接口。每个接口可以与不同的目标组相关联。
    示例目标类型仅限有限示例。在对示例进行负载均衡时,它应该是您的默认选择。例如,如果您在自动伸缩组(ASG)中有示例,ASG会自动将您的示例注册到您的负载均衡。不能对IP目标类型执行此操作。
9rnv2umw

9rnv2umw2#

在**Amazon Conainer Network Interface(CNI)**的上下文中,节点上的每个弹性网络接口(弹性网络接口(弹性网络接口)都有一个可以支持多少次IP地址的范围。Pod从这个辅助IP地址范围中分配IP地址(这是CNI的工作)。
当该范围的辅助IP地址耗尽时(可能太多的pod或太易失的pod),CNI在节点上提供新的辅助ENI,该节点具有用于该pod的新范围的辅助IP地址(取决于EC2示例的类型,其具有对其可以支持的ENI的数量的限制)。
根据NLB请求路由。
如果使用示例ID指定目标,则流量将使用在示例的主网络接口中指定的主专用IP地址路由到示例。
所以现在对Pods密度有影响。也许滚动更新会发生这种情况,它超过了最大限制。

qjp7pelc

qjp7pelc3#

关于这方面的一些额外考虑。示例路由将转发到服务的NodePort,这意味着kubeproxy将接收请求并转发到pod。在我的默认配置中,它可以转发到另一个节点上的pod。这通常不是一个大问题。如果您正在处理大量数据,您可能不希望节点之间进行大量转发。此外,节点可以在另一AZ中(如果使用EKS和多个AZ);并且在跨越AZ边界的数据上将存在入口和出口费用。
另外,只是为了澄清上面所说的,如果你在EKS中使用IP路由;使用(最新)AWS负载均衡器控制器;它将保持NLB目标组如您所期望的那样使用POD IP进行更新。或者,如果执行示例路由,它将使用每个Node上的NodePort更新目标组。

相关问题