首页 文章

Kubernetes:NodePort和LoadBalancer之间的区别

提问于
浏览
22

我刚刚开始使用Kubernetes,我对NodePort和LoadBalancer服务类型之间的区别感到困惑 .

我理解的差异是LoadBalancer不支持UDP,但除此之外,无论何时我们创建服务nodeport或loadbalancer,我们都会获得服务IP和端口,NodePort和 endpoints .

来自Kubernetes文档:

NodePort:在拥有集群内部IP的基础上,在集群的每个节点(每个节点上的相同端口)上的端口上公开服务 . 您将能够在任何NodeIP:NodePort地址上联系该服务 . LoadBalancer:除了拥有集群内部IP并在NodePort上公开服务之外,还要求 Cloud 提供商提供负载均衡器,该负载均衡器转发到作为NodeIP公开的服务:每个节点的NodePort .

所以,我将始终访问nodeip:nodeport上的服务 . 我的理解是,每当我们访问节点:nodeport时,kubeproxy将拦截请求并将其转发到相应的pod .

关于LoadBalancer的另一件事是我们可以有一个外部LB,它将在节点之间产生LB.什么阻止我们为创建为nodeport的服务放置LB?

我真的很困惑 . 大多数文档或教程仅讨论LoadBalancer服务,因此我在互联网上找不到太多东西 .

如果有人能清除我的怀疑,请欣赏 .

谢谢

1 回答

  • 12

    没有什么可以阻止您在节点前放置外部负载 balancer 器并使用NodePort选项 .

    LoadBalancer选项仅用于在后台自动向 Cloud 提供商请求新的软件LB实例 .

    我还不知道支持哪些 Cloud 提供商,但我看到它已经在Compute Engine和OpenStack上工作了 .

相关问题