我刚刚开始使用 Kubernetes,对 NodePort 和 LoadBalancer 类型的服务之间的区别感到困惑。
我理解的区别是 LoadBalancer 不支持 UDP,但除此之外,每当我们创建服务时Nodeport
or Loadbalancer
我们得到一个服务 IP 和端口、一个 NodePort 和端点。
来自 Kubernetes 文档:
节点端口:除了拥有集群内部 IP 之外,还公开服务
在集群的每个节点上的端口上(每个节点上的相同端口)。
您可以通过任何方式联系该服务节点IP:节点端口地址。
负载均衡器:除了拥有集群内部 IP 之外
也在 NodePort 上公开服务,向云提供商请求负载
平衡器转发到作为公开的服务节点IP:节点端口对于每个节点。
因此,我将始终访问 NodeIP:NodePort 上的服务。
我的理解是,每当我们访问node:NodePort时,kubeproxy就会拦截请求并将其转发到相应的pod。
关于 LoadBalancer 提到的另一件事是,我们可以有一个外部负载均衡器,它将在节点之间进行负载均衡。是什么阻止我们为创建为节点端口的服务放置 LB?
我真的很困惑。大多数文档或教程只讨论 LoadBalancer 服务,因此我在互联网上找不到太多内容。
没有什么可以阻止您在节点前面放置外部负载均衡器并使用 NodePort 选项。
LoadBalancer 选项仅用于在后台自动向您的云提供商额外请求新的软件 LB 实例。
我还不知道哪些云提供商受支持,但我看到它已经适用于 Compute Engine 和 OpenStack。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)