Kubernetes NodePort和LoadBalancer之间的区别?
我刚刚开始学习Kubernetes,我对NodePort和LoadBalancer服务类型之间的区别感到困惑 我理解的区别是LoadBalancer不支持UDP,但除此之外,无论何时创建服务Kubernetes NodePort和LoadBalancer之间的区别?,kubernetes,Kubernetes,我刚刚开始学习Kubernetes,我对NodePort和LoadBalancer服务类型之间的区别感到困惑 我理解的区别是LoadBalancer不支持UDP,但除此之外,无论何时创建服务Nodeport或LoadBalancer,我们都会得到服务IP和端口、Nodeport和端点 来自Kubernetes文档: 节点端口:在拥有集群内部IP的基础上,公开服务 在群集每个节点上的端口上(每个节点上的端口相同)。 您可以通过任何节点ip:NodePort 地址 负载平衡器:在拥有集群内部IP和
Nodeport
或LoadBalancer
,我们都会得到服务IP和端口、Nodeport和端点
来自Kubernetes文档:
节点端口:在拥有集群内部IP的基础上,公开服务
在群集每个节点上的端口上(每个节点上的端口相同)。
您可以通过任何节点ip:NodePort
地址
负载平衡器:在拥有集群内部IP和
在NodePort上公开服务也可以向云提供商请求负载
转发到作为节点IP:NodePort公开的服务的平衡器
对于每个节点
所以,我将始终访问NodeIP:NodePort上的服务。
我的理解是,每当我们访问node:NodePort时,kubeproxy将拦截请求并将其转发到相应的pod
关于LoadBalancer提到的另一件事是,我们可以有一个外部LB,它将在节点之间创建LB。是什么阻止我们为创建为节点端口的服务放置LB
我真的很困惑。大多数文档或教程只讨论负载平衡器服务,因此我在internet上找不到太多内容。没有任何内容阻止您在节点前面放置外部负载平衡器并使用NodePort选项 LoadBalancer选项仅用于在后台自动向云提供商请求新的软件LB实例 我还不知道支持哪些云提供商,但我已经看到它在ComputeEngine和OpenStack上运行 节点端口和负载平衡器服务之间的区别。
节点端口
负载平衡器
通过创建一个NodePort
服务,您是在告诉Kubernetes在其所有节点上保留一个端口,并将传入连接转发到属于该服务的POD。
群集中的每个节点上都没有带负载平衡器的此类端口保留。
节点端口
服务不仅可以通过服务的内部群集IP
访问,还可以通过任何节点的IP和保留节点端口访问。
只能通过负载平衡器
公共IP访问
指定端口不是必需的。如果忽略它,Kubernetes将选择一个随机端口(默认范围30000-32767)。
负载平衡器
将拥有自己唯一的、可公开访问的IP地址,并将所有连接重定向到您的服务
如果只将客户端指向第一个节点,当该节点出现故障时,客户端将无法再访问该服务
在节点前面使用负载平衡器
,以确保在所有正常节点之间分发请求,并且永远不会将请求发送到此时处于脱机状态的节点。