网络概述 Service Service是用来解决Pod访问问题的。每个Service有一个固定IP地址,Service将访问流量转发给Pod,而且Service可以给这些Pod做负载均衡。 图 通过Service访问Pod 根据创建Service的类型不同,可分成如下模式: ClusterIP:用于在集群内部互相访问的场景,通过ClusterIP访问Service。 NodePort:用于从集群外部访问的场景,通过节点上的端口访问Service。 LoadBalancer:用于从集群外部访问的场景,其实是NodePort的扩展,通过一个特定的LoadBalancer访问Service,这个LoadBalancer将请求转发到节点的NodePort,而外部只需要访问LoadBalancer。 Service的详细介绍请参见Service概述。 lngress Service是基于四层TCP和UDP协议转发的,而Ingress可以基于七层的HTTP和HTTPS协议转发,可以通过域名和路径做到更细粒度的划分,如下图所示。 图 IngressService Ingress的详细介绍请参见Ingress概述。 网络访问场景 负载网络访问可以分为如下几种场景。 集群内部访问:创建ClusterIP类型的Service,通过Service访问负载。 外部访问负载:从外部访问负载推荐使用Service(NodePort类型或LoadBalancer类型)或Ingress访问。 公网访问负载需要节点或LoadBalancer绑定公网IP。 内网访问负载通过节点或LoadBalancer内网IP即可。如果跨VPC需要通过对等连接等手段打通不同VPC网络。 负载访问外部: 负载访问内网:负载访问内网地址,在不同容器网络模型下有不同的表现,需要注意在对端安全组放通容器网段,具体请参见容器如何访问VPC内部网络。 负载访问公网:访问公网有几种方法可以实现,一是让容器所在节点绑定公网IP(容器网络模型为VPC网络或容器隧道网络),另一个是通过NAT网关配置SNAT规则,具体请参见从容器访问公网。 图 网络访问示意图