当前位置: 首页 > 知识库问答 >
问题:

Kubernetes中的ClusterIP、NodePort和LoadBalancer服务类型有什么区别?

赫连坚
2023-03-14

1-我正在阅读文档,我对措辞有点困惑。上面写着:

集群IP:在集群内部IP上公开服务。选择此值将使服务只能从集群内访问。这是默认的ServiceType

NodePort:在每个节点的IP上的一个静态端口(NodePort)上公开服务。节点端口服务将路由到的集群IP服务将自动创建。您可以通过请求 : 从集群外部联系NodePort服务。

LoadBalancer:使用云提供商的负载均衡器对外公开服务。外部负载均衡器将路由到的NodePort和ClusterIP服务将自动创建。

NodePort服务类型是否仍然使用clusterIP但只是在另一个端口上使用,该端口对外部客户端开放?那么在本例中, : : 相同吗?

或者nodeIP实际上是运行kubectl get nodes时找到的IP,而不是用于集群IP服务类型的虚拟IP?

2-也在下面链接的图表中:

http://kubernetes.io/images/docs/services-iptables-overview.svg

客户端节点中有什么特殊原因吗?我假设在集群IP服务类型的情况下,它需要在cluster内部。

如果为NodePort绘制了相同的关系图,那么将客户机完全绘制在节点集群之外是有效的吗?还是我完全忽略了这一点?

共有1个答案

戴树
2023-03-14

集群IP公开以下内容:

  • spec.clusterIP:spec.ports[*].port

您只能在群集中访问此服务。可以从其spec.clusterip端口访问它。如果设置了spec.ports[*].targetport,它将从端口路由到targetport。调用kubectl get services时获得的CLUSTER-IP是在集群内部分配给此服务的IP。

节点端口公开以下内容:

  • :spec.ports[*].nodeport
  • spec.clusterIP:spec.ports[*].port

如果您从节点的外部IP访问节点端口上的此服务,它会将请求路由到spec.clusterIP:spec.ports[*].port,如果设置了,它又会将请求路由到您的spec.ports[*].targetport。也可以通过与集群IP相同的方式访问此服务。

NodeIP是节点的外部IP地址。您无法从spec.clusterIP:spec.ports[*].nodeport访问服务。

LoadBalancer公开以下内容:

  • spec.loadbalancerIP:spec.ports[*].port
  • :spec.ports[*].nodeport
  • spec.clusterIP:spec.ports[*].port

您可以从负载均衡器的IP地址访问此服务,它将您的请求路由到节点端口,节点端口又将请求路由到集群IP端口。您也可以像访问节点或集群IP服务一样访问此服务。

 类似资料:
  • 我了解kubernetes服务,因为LoadBalancer服务是NodePort和ClusterIP的扩展,后者已经是POD的负载平衡器层。当我们使用NodePort或CluserIP和ingress时,我们已经能够使用负载平衡器(内部)在服务中通过域访问应用程序。那么,为什么我们还有另一个选择是LoadBalancer服务(外部云提供商)?

  • 对你们中的一些人来说,这个问题可能不太合理。 我试图了解、和之间的区别,以及在什么时候通过一个示例使用这些区别。我想我对以下概念的理解是正确的,K8s由以下组件组成 节点-虚拟机或物理机器。运行kubectl和docker进程 吊舱--封装容器和卷(存储)的单元。如果一个pod包含多个容器,则共享卷可能是进程通信的方式 节点可以有一个或多个豆荚。每个吊舱都有自己的IP 集群-节点的副本。集群中的每

  • 我们在AWS EKS上运行两种类型的服务: null

  • 类型:LoadBalancer IP: 25.0.162.225 LoadBalancer Ingress:internal-a9716e.....us-west-2.elb.amazonaws.com 据我所知,我使用的发布类型是“LoadBalancer”,它帮助我将服务公开给外部IP地址(参见https://kubernetes.io/docs/concepts/services-netwo

  • 我刚刚开始使用库伯内特斯,我对NodePort和LoadBalancer类型的服务之间的区别感到困惑。 我理解的区别是LoadBalancer不支持UDP,但除此之外,每当我们创建或服务时,我们都会获得服务IP和端口、NodePort和endpoint。 来自Kubernetes文档: NodePort:在拥有集群内部IP的基础上,在集群的每个节点上的一个端口(每个节点上的同一端口)公开服务。您可

  • 当我将服务与ClusterIP类型和2个POD一起使用时,流量分布在2个POD上。 我找到了另一种服务类型LoadBalancer。这两种服务的区别是什么?LoadBalancer与ClusterIP有何不同? 谢谢