service 是应用服务的抽象,通过labels为应用提共负载均衡和服务发现
基础概念
容器都是在pod中,pod是在一个大的扁平ip网络中,每个pod都有独立的ip。横向扩展时新的pod 也会获取新的ip,缩容时也会删除一部分ip,这就导致pod 的ip 是不固定的,如果应用直接指向pod,需要对每个pod 的状态进行实时监控,管理难度比较困难
k8s执行ip地址管理ipam,对pod网络上已使用和可用的ip 进行跟踪
如果没有其他,每个应用服务都需要对网络进行监控,并管理一个健康pod 的列表
而k8s service对象,在一组提供服务的pod之前创建一个稳定的网络端点,并为这些pod 进行负载分配
k8s service
- 前端: 名称 ,cluster ip和端口等不变的部分
- 后端: 符合特定标签的pod集合
应用在容器中运行,在 Kubernetes 中体现为 Pod 的形式。Kubernetes 集群中的所有 Pod 都处于同一个平面的 Pod 网络,有自己的 IP 地址。这意味着所有的 Pod 之间都能直接连接。然而 Pod 是不稳定的,可能因为各种因素创建和销毁。Kubernetes 提供了稳定的网络端点,称为 Service,这个对象处于一组相似的 Pod 前方,提供了稳定的名称、IP 和端口。
客户端连接到 Service,Service 把流量负载均衡给 Pod。
网友评论