ClusterIP 是 Kubernetes 集群内部使用的虚拟 IP 地址,它只能在集群内部被访问。外部网络无法直接 ping 通 ClusterIP,也无法直接通过 ClusterIP 访问服务。这是因为 ClusterIP 没有一个“实体网络对象”来响应外部请求,它仅仅作用于 Kubernetes Service 对象,并由 Kubernetes 管理和分配。 二、通过 NodePort 或 LoadBa...
ClusterIP:k8s 虚拟的 Service 的 IP 地址,此为虚拟 IP 地址。 1.2 三种 IP 的理解 Node IP: 是物理机的IP(或虚拟机IP)。每个Service都会在Node节点上开通一个端口,外部可以通过 http://NodeIP:NodePort 即可访问 Service 里的 Pod 提供的服务。 Pod IP: 是每个 Pod 的 IP 地址,Docker Engine根据 docker...
NodePort(宿主机的IP)每个Service都会在Node节点上开一个端口,外部可以通过 http://NodeIP:NodePort 访问 Service 里的 Pod 提供的服务。 Cluster IP(集群IP,相当于一个负载均衡) k8s 虚拟的 Service 的 IP 地址,此为虚拟 IP 地址。是 Service 的 IP 地址,此为虚拟 IP 地址,外部网络无法 ping 通,只有kuberne...
这样,外部客户端就可以从这些特定的外部IP地址访问服务。 访问方式:外部客户端通过指定的ExternalIP和Service的端口访问服务。 示例: apiVersion:v1 kind:Service metadata: name:my-externalip-service spec: selector: app:MyApp type:ClusterIP externalIPs: -192.0.2.10 ports: -name:http port:80 targetPort:8...
在不同Service下的pod节点在集群间相互访问可以通过Cluster IP 1.3 三种 IP 关系图 ①:代表外部通过公有云的 LoadBalancer 负载均衡服务访问集群内部服务流程 ②:代表外部用户直接访问集群内部 Service 的 ClusterIP 访问集群内部服务流程
kubectl get service my-app-service -o jsonpath='{.spec.clusterIP}'` ``` 示例输出为: ``` 192.168.0.100 ``` 通过上述命令获取到的IP地址即为K8S集群的IP。我们可以使用此IP地址来访问集群内的应用程序。 至此,我们已经成功地完成了外部访问K8S集群IP的过程。
ClusterIP ClusterIP 是默认的 Kubernetes service 类型。有了它,集群内部的应用程序可以相互访问,但集群外部的应用程序不行。 ClusterIP service 的 YAML 如下图所示: 如果你都不能通过公网访问 ClusterIP service,那我为什么要提它呢?因为你可以使用 Kubernetes proxy 来访问它!
NodePort服务可能只能通过节点的IP地址而不能通过集群的外部IP地址访问。确保你使用节点的IP地址进行访问。
k8s集群的外网访问方式有3种: Ingress, NodePort和LoadBanlancer。 其中Ingress是k8s的一个抽象层,有很多的IngressController和服务可以来实现这个Ingress服务,然后由这个Ingress服务把外网的请求转发到集群内的服务。 NodePort和LoadBanlancer是k8s中service的类型。上面讲到的集群内访问,ClusterIP也是service的一种类型。
1、问题:node2暴露nodeport,请求转发到node1上的pod时候,会做SNAT,源IP改成node2的ip,但有些场景,我们的应用需要拿到client真实来源IP,如何做? 2、解决方案:将 Service 的 spec.externalTrafficPolicy 字段设置为 local(默认值是cluster)。 3、原理:ocal表示service只把请求转给当前节点的pod(即不存在SNAT),这样...