目录
k8s service
Service作用
Service的核心作用就是为Pod提供稳定的网络连接。除此之外,还提供负载均衡和从集群外部访问Pod的途径。Service对外提供固定的IP、DNS名称和端口,并确保这些信息在Service的整个生命周期中是不变的。Service对内则使用Label来将流量均衡转发至应用的各个(通常是动态变化的)Pod中。
为什么要引入Service
Pod的IP地址是不可靠的。在某个Pod失效之后,它会被一个拥有新的IP的Pod代替。Deployment扩容也会引入拥有新IP的Pod;而缩容则会删除Pod。这会导致大量的IP流失,因而Pod的IP地址是不可靠的。
Service需要注意的点
- Kubernetes中用来为Pod提供稳定的网络服务的Service对象。就像Pod、ReplicaSet或Deployment,一个Kubernetes Service是指我们在部署文件中定义的API中的一个REST对象,最终需要POST到API Server
- 每一个Service都拥有固定的IP地址、固定的DNS名称,以及固定的端口
- Service利用Label来动态选择将流量转发至哪些Pod
Service的作用和原理
- 这个Service可以将各个Pod与客户端一侧,通过固定的IP、DNS和端口连接起来。同时还可以对请求进行负载均衡。固定的前端和动态的后端的中间层。所谓前端,主要由IP、DNS名称和端口组成,始终不变;而后端,则主要由一系列的Pod构成,会时常发生变化。
- Service与Pod之间是通过Label和Label筛选器(selector)松耦合在一起的。Deployment和Pod之间也是通过这种方式进行关联的,这种松耦合方式是Kubernetes具备足够的灵活性的关键。
- 对于Service与Pod的关联关系来说,所有匹配的Pod必须拥有Service Label筛选器中定义的所有Label