有人能解释一下,我必须在裸机kubernetes集群上使用外部(MetalLB、HAProxy等)负载平衡器吗?
例如,我有一个具有3个节点的裸机集群,其中一些实例公开了端口105。为了在外部Ip地址上公开它,我可以用“externalIPs”定义一个NodePort类型的服务,它似乎工作得很好。文档中说要使用负载平衡器,但我不明白为什么要使用它,我担心会出错 有人能解释一下,我必须在裸机kubernetes集群上使用外部(MetalLB、HAProxy等)负载平衡器吗有人能解释一下,我必须在裸机kubernetes集群上使用外部(MetalLB、HAProxy等)负载平衡器吗?,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,例如,我有一个具有3个节点的裸机集群,其中一些实例公开了端口105。为了在外部Ip地址上公开它,我可以用“externalIPs”定义一个NodePort类型的服务,它似乎工作得很好。文档中说要使用负载平衡器,但我不明白为什么要使用它,我担心会出错 有人能解释一下,我必须在裸机kubernetes集群上使用外部(MetalLB、HAProxy等)负载平衡器吗 您不必使用它,您可以选择使用NodePort还是LoadBalancer 让我们从NodePort和LoadBalancer之间的区别开
您不必使用它,您可以选择使用NodePort还是LoadBalancer
让我们从NodePort和LoadBalancer之间的区别开始 节点端口是将外部流量直接传送到您的服务的最原始的方式。顾名思义,它会在所有节点(VM)上打开一个特定端口,发送到此端口的任何流量都会转发到服务 LoadBalancer服务是向internet公开服务的标准方式。它为您提供一个IP地址,将所有流量转发到您的服务 你可以在库伯内特斯找到更多关于这方面的信息
至于您在评论中提出的问题,
但是带有“externalIPs”选项的NodePort也在做同样的事情。我只看到一个微小的区别,那就是IP应该由一个集群机器拥有。那么,使用负载平衡器的好处在哪里呢?
让我更准确地回答这个问题
ExternalIP有以下几种功能:
使用ExternalIP的优点是:
您可以完全控制所使用的IP。您可以使用属于您的ASN>的IP,而不是云提供商的ASN
使用ExternalIP的缺点是:
简单的设置,我们将通过现在不是高度可用。这意味着,如果节点死亡,服务将无法访问,您需要手动修复该问题
需要进行一些手动工作来管理IP。IP不是为您动态配置的,因此需要手动干预
总结两者的优缺点,我们可以得出结论,ExternalIP不是为生产环境而设计的,它不是高度可用的,如果节点死亡,服务将无法访问,您将不得不手动修复
使用LoadBalancer,如果节点死亡,服务将在另一个节点上自动重新创建。因此,它是动态配置的,不需要像ExternalIP那样手动配置。您不必使用它,您可以选择使用NodePort还是LoadBalancer。节点端口是直接将外部通信量获取到服务的最原始的方式。顾名思义,它会在所有节点(VM)上打开一个特定端口,发送到此端口的任何流量都会转发到服务。LoadBalancer服务是向internet公开服务的标准方式。它为您提供一个IP地址,将所有流量转发到您的服务。如果这能回答你的问题,请告诉我。我还不清楚。您说LoadBalancer提供一个IP地址,将所有流量转发到我的服务。但是带有“externalIPs”选项的NodePort也在做同样的事情。我只看到一个微小的区别,那就是IP应该由一个集群机器拥有。那么,使用负载平衡器的利润在哪里呢?