Kubenerters中对于服务的访问,提供了多种访问方式,以适应不同的使用场景。其中主要的访问方式有ClusterIP、NodePort以及LoadBalancer三种。
三种访问方式详细对比说明如下表所示:
一、Cluster IP访问方式
适用于集群内服务间相互访问的场景,其访问的流程如下图所示:
访问的数据流向为: Internal traffic>Cluster IP:Port–>kube-proxy(iptables)–>Pod Backend
二、 NodePort访问方式
在无外部负载均衡器的情况下,可以通过NodePort提供外部访问的能力,其访问的流程如下图所示:
访问的数据流向为: Client–>NodeIP:NodePort>kube-proxy(iptables)–>Pod Backend
1、Client–>kube-proxy: 通过NodeIP:NodePor访问,NodeIP可以是集群中任意一个节点的IP,NodePort一般通过Kubernetes随机分配,默认分配范围为30000—32768。
2、kube-proxy–>Pod Backend: (同Cluster IP访问)
三、LoadBalancer方式
在外部存在负载均衡器的情况下,一般通过LoadBalancer的方式实现外 访问(其底层依赖于NodePort),其访问的流程如下图所示:
访问的数据流向为: Client–>VIP:VPort–>负载均衡器–>NodeIP:NodePort>kube-proxy(iptables)–>Pod Backend
1、 Client–>负载均衡器: 通过VIP:VPor访问,也可以通过负载均衡器中绑定的域名进行访问。
2、负载均衡器–>kube-proxy: 负载均衡器在可用的节点中,根据均衡算法选择一个节点进行转发,转发的目的端口为NodePort。
3、kube-proxy–>Pod Backend: (同Cluster IP访问)。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!