我读了很多文档,发现NodePort
不是LoadBalancer
。但是实际上,它LoadBlance
在不同节点中不同Pod之间的流量,因此我们可以将其称为LoadBalancer
。
那么为什么不能将NodePort
用作LoadBalancer
?
答案 0 :(得分:1)
LoadBalancer类型服务是NodePort服务和其前面的云负载平衡器的组合。在大多数情况下,NodePort服务是一个不完整的解决方案,因为没有很好的方法将数据包从客户端传送到需要传送的位置。是的,每个节点上都有一个开放的端口,但是如何使用呢?在某些情况下,可以使用NodePort和DNS循环方法,但是大多数协议在该模式下不能很好地工作。例如,如果一个节点发生故障,它可能仍位于DNS缓存中,因此即使DNS记录中的其他节点仍处于运行状态,客户端通常仍会尝试访问它。此外,对于单个记录可以返回多少IP的协议有限制。 LoadBalancer类型通常通过诸如AWS CLB或GCP TCP负载平衡器之类的公共云系统在所有这些NodePort之前放置一个浮动虚拟IP(VIP),但是还有诸如MetalLB之类的更直接的工具。