Kubernetes – 集群 IP 与节点端口
ClusterIP 提供负载均衡的 IP 地址。一个或多个匹配标签选择器的 pod 可以将流量转发到 IP 地址。 ClusterIP服务必须定义一个或多个端口来侦听目标端口,以将 TCP/UDP 流量转发到容器。
集群 IP:
- 这是默认服务类型,通过使服务仅在集群内可访问,在集群内部 IP 上公开服务。
- 集群服务是默认的 Kubernetes 服务。它为您提供集群内的服务,集群内的其他应用程序可以访问该服务。
- 没有外部过程。
何时使用集群 IP?
- 在一些场景中,您会使用 Kubernetes 代理来访问您的服务。
- 调试您的服务,或出于某种原因直接从您的笔记本电脑连接到它们
- 允许内部流量、显示内部仪表板等。
- 因为此方法要求您以经过身份验证的用户身份运行kubectl ,所以您不应该使用它来将您的服务公开到 Internet 或将其用于生产服务。
节点端口:
这会在静态端口上公开每个节点 IP 上的服务。因为 NodePort 服务将路由到的 ClusterIP 服务是自动创建的。我们可以联系集群外的 NodePort 服务。
- Nodeport 服务是将外部流量直接传输到您的服务的最原始方式。
- 同理,NodePort 在所有节点(VM)上打开一个特定端口,发送到该端口的任何流量都会转发到服务。
何时使用节点端口?
- 这种方法有很多缺点
- 每个端口只能有一项服务
- 您只能使用端口 30,000-32,767
- 如果您的节点/虚拟机 IP 地址发生变化,您需要处理
- 由于这些原因,我不建议在生产中使用这种方法来直接公开您的服务。如果您运行的服务不必始终可用,或者您对成本非常敏感,那么此方法将适合您。这种应用程序的一个很好的例子是演示应用程序或临时的东西。