一、什么是服务service?
在k8s里面,每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,重启pod的ip地址会发生变化,此时客户如果访问原先的ip地址则会报错 ;
Service (服务)就是用来解决这个问题的, 对外服务的统一入口,防止pod失联,定义一组pod的访问策略(服务发现、负载均衡) ;
一个Service可以看作一组提供相同服务的Pod的对外访问接口,作用于哪些Pod是通过标签选择器来定义的 ,Service是一个概念,主要作用的是节点上的kube-proxy服务进程 ;
举例来说,定义了3个商品微服务,由网关作为统一访问入口, 前端不需要关心它们调用了哪个后端副本。 然而组成这一组后端程序的 Pod 实际上可能会发生变化, 前端客户端不应该也没必要知道,而且也不需要跟踪这一组后端的状态。
简而言之,Service 定义的这种抽象能够解耦这种关联;
二、service分类
根据使用场景的不同,service可以分成下面几类
2.1 ClusterIP
默认类型,自动分配一个【仅集群内部】可以访问的虚拟IP
2.2 NodePort
对外访问应用使用,在ClusterIP基础上为Service在每台机器上绑定一个端口