问题 1 - 我正在阅读文档,但对措辞有些困惑。它说:

NodePort 服务类型是否仍然使用 ClusterIP 但只是在对外部客户端开放的不同端口?那么在这种情况下 <NodeIP>:<NodePort><ClusterIP>:<NodePort> 相同吗?
或者 NodeIP 实际上是您运行 kubectl get nodes 时找到的 IP,而不是用于 ClusterIP 服务类型的虚拟 IP?
问题 2 - 同样在下面链接的图表中:
kubernetes - Kubernetes 中的 ClusterIP、NodePort 和 LoadBalancer 服务类型有什么区别?-LMLPHPClientNode 里面有什么特别的原因吗?我认为在 ClusterIP 服务类型的情况下它需要在 Cluster 内?
如果为 NodePort 绘制了相同的图表,将客户端完全绘制在 NodeCluster 之外是否有效,还是我完全错过了这一点?

最佳答案

ClusterIP 公开以下内容:

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

  • 您只能在集群内部访问此服务。它可以从它的 spec.clusterIp 端口访问。如果设置了 spec.ports[*].targetPort,它将从端口路由到目标端口。调用 kubectl get services 时得到的 CLUSTER-IP 是集群内部分配给该服务的 IP。
    NodePort 公开以下内容:
  • <NodeIP>:spec.ports[*].nodePort
  • spec.clusterIp:spec.ports[*].port

  • 如果您从节点的外部 IP 在 nodePort 上访问此服务,它会将请求路由到 spec.clusterIp:spec.ports[*].port ,然后将其路由到您的 spec.ports[*].targetPort (如果已设置)。此服务也可以通过与 ClusterIP 相同的方式访问。
    您的 NodeIP 是节点的外部 IP 地址。您无法从 spec.clusterIp:spec.ports[*].nodePort 访问您的服务。
    LoadBalancer 公开以下内容:
  • spec.loadBalancerIp:spec.ports[*].port
  • <NodeIP>:spec.ports[*].nodePort
  • spec.clusterIp:spec.ports[*].port

  • 您可以从负载均衡器的 IP 地址访问此服务,它将您的请求路由到 nodePort,然后将请求路由到 clusterIP 端口。您也可以像访问 NodePort 或 ClusterIP 服务一样访问此服务。

    关于kubernetes - Kubernetes 中的 ClusterIP、NodePort 和 LoadBalancer 服务类型有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41509439/

    10-16 18:16