当kubernetes服务为类型
ClusterIP
时,外部IP地址选项的用途是什么?ClusterIP
时,外部IP地址选项的用途是什么?ClusterIP 是 Kubernetes 中的默认服务类型,它只允许您在集群内部访问您的服务。
如果您的服务类型设置为 LoadBalancer 或 NodePort,则会自动创建 ClusterIP
并将 LoadBalancer
或 NodePort
服务路由到此 ClusterIP
IP 地址。
新的外部 IP 地址仅分配给 LoadBalancer
类型。
当您将服务设置为 NodePort
时,也可以使用节点的外部 IP 地址。但在这种情况下,您需要为节点添加额外的防火墙规则,以允许入口流量进入您的暴露的节点端口。
ExternalIP
就是一个通过它可以从集群外部访问服务的终端点,因此带有 ExternalIP
的 ClusterIP
类型的服务仍然可以使用其 service.namespace DNS 名称在集群内部访问,但现在也可以从其外部终端点访问。例如,您可以将 ExternalIP
设置为 k8s 节点之一的 IP,或者在该 IP 上为您的集群创建入口。ClusterIP是从IP池中分配给服务的唯一IP,只有在集群内部才能使用Cluster IP访问该服务的Pod。ClusterIP是Kubernetes中默认的服务类型。
kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer
上述示例将创建具有外部IP和集群IP的服务。在负载均衡器、节点端口服务的情况下,可以通过外部IP从其他集群访问该服务。
type: ClusterIP
的服务时,它只有集群 IP ,没有外部 IP 地址 <none>
。仅补充coolinuxoid的答案。我正在使用GKE,并基于他们的文档,当您添加类型为ClusterIP的服务时,他们提供通过以下方式访问它:
访问您的服务 列出正在运行的Pod:LoadBalancer
。NodePort
。顺便提一下,同一份文档确实建议了这样一种选项(我个人测试过,效果非常好):