service详解
1.service介绍
上图中Nginx为反向代理负载均衡的pod,SVC为service,这个架构比传统架构多了一个SVC收集IP
只提供4层负载均衡能力(IP地址和端口进行转发),而没有7层功能(主机名和域名),
但有时我们可能需要更多的匹配规则来转发请求,这点上4层负载均衡是不支持的
01.kube-proxy服务进程
userspace
iptable
ipvs
2.service类型
3.service使用
01.环境准备
02.ClusterlP类型的Service
Clusterlp:默认类型,自动分配一个仅Cluster内部可以访问的虚拟IP
03.HeadLiness类型的Service
有时不需要或不想要负载均衡,以及单独的Service lP。遇到这种情况,可以通过指定ClusterIP(spec.clusterlP)的值为“None”来创建 Headless Service。这类Service并不会分配ClusterIP,kube-proxy不会处理它们,而且平台也不会为它们进行负载均衡和路由
04.NodePort类型的Service
NodePort:在ClusterlP基础上为Service在每台机器上绑定一个端口,这样就可以通过<NodelP>:NodePort来访问该服务
05.LoadBalancer类型的Service
LoadBalancer:在NodePort的基础上,借助cloud provider创建一个外部负载均衡器,并将请求转发到<NodelP>: NodePort
06.ExternalName类型的Service
ExternalName:把集群外部的服务引入到集群内部来,在集群内部直接使用。没有任何类型代理被创建,这只有kubernetes 1.7或更高版本的kube-dns才支持