K8s集群核心概念:Service
我们在之前的学习过程中遇到一个问题,就是如果Pod被误删除,那么Controller重新拉起一个新的Pod时,我们发现PodIP地址是变化着的,我们访问必须更新IP地址。
这样对于大量的Pod运行应用来说,我们对Pod完全无法控制的,因此在K8s集群中我们引入另一个概念Service。
学习目标:
了解Service是什么?
了解Service作用
了解Service类型
了解Service参数
掌握Service创建方法
掌握Service删除方法
课程内容:
Service介绍:
不是实体服务,实体服务有自己的守护进程、有自己运行的配置文件,有自己运行的数据文件。
是一条iptables或者ipvs的转发规则。
Service仅仅是一个服务。
Service作用:
通过Service为Pod客户端提供访问Pod方法,即客户端访问Pod入口。
Service通过Pod标签与Pod进行关联的。
说明:
Pod是有自己的IP地址。PodIP地址是经常发生变化。
Service的IP地址是很少发生变化的。用户通过Service来访问Pod。通过域名进行访问。
给Pod一个标签,Service通过selector选择器来选择标签,就进行了关联。
Service类型:
ClusterIP:
默认:分配一个集群内部可以访问的虚拟IP。但是这只能在集群内的主机访问。
NodePort:
在每个Node上分配一个端口作为外部访问入口。
Loadbalance负载均衡:
工作在特定Cloud Provider上,例如:Google CloudPod、AWS、OpenStack,在云平台上。
通过这种访问来访问。
ExternalName:
表示把集群外部的服务引入到集群内部来,即实现了集群内部Pod和集群外部的服务进行通信。
Service参数:
port:访问service使用的端口
targetPort: Pod中容器使用的端口
NodePort:通过Node实现集群外网用户访问k8s集群内service(随机端口号:30000~32767)
如果手动指定应