例如,我有一个带有3个节点的裸金属集群,其中一些实例公开了端口105。为了在外部Ip地址上公开它,我可以用"externalIPs“定义一个类型为NodePort的服务,它似乎运行得很好。在文档中,它说要使用负载均衡器,但我没有很好地理解为什么我必须使用它,我担心会犯一些错误。
发布于 2021-04-19 09:35:08
有人能解释我为什么要用外接(MetalLB,HAProxy等)负载均衡器吗?
您不必使用它,您可以选择使用NodePort还是LoadBalancer。
让我们从NodePort和LoadBalancer之间的区别开始。
NodePort是直接获取服务外部通信量的最原始方法。顾名思义,它在所有节点(VM)上打开一个特定端口,发送到该端口的任何通信都被转发到服务。
LoadBalancer服务是向internet公开服务的标准方法。它为您提供了一个IP地址,将所有流量转发给您的服务。
您可以在kubernetes 文档中找到更多关于这一点的信息。
至于你在评论中提出的问题,But NodePort with "externalIPs" option is doing exactly the same. I see only one tiny difference is that the IP should be owned by one of the cluster machin. So where is the profit of using a loadBalancer?让我更准确地回答。
有利与弊 of ExternalIP:
使用ExternalIP的优势是: 您完全控制您使用的IP。您可以使用属于ASN >的IP,而不是云提供商的ASN。 使用disadvantages ExternalIP是: 简单的设置,我们将通过现在是没有高度可用的。这意味着,如果节点死亡,服务就无法到达,您将需要手动补救该问题。 需要做一些手工工作来管理IP。IPs不是动态地为您提供的,因此需要人工干预。
总结两者的优缺点,我们可以得出结论,ExternalIP不是为生产环境而开发的,它不是高度可用的,如果节点死了,服务将无法到达,您将不得不手动修复该服务。
使用LoadBalancer,如果节点死亡,则将在另一个节点上自动重新创建服务。因此,它是动态配置的,不需要像ExternalIP那样手动配置它。
https://stackoverflow.com/questions/67001715
复制相似问题