梗概
Service 是一个抽象层,定义了一组逻辑上的 Pod,并能够在这些 Pod 之间提供网络访问(通常通过集群内部的虚拟 IP)。Service 解决了 Pod IP 动态变化的问题,提供稳定的访问入口。
详细说明
功能与作用
- Service 处理 Pod 之间的通信,使应用程序组件能够相互发现和通信
- 提供稳定的网络端点,即使底层 Pod 发生变化(扩缩容、故障转移等)
- 支持多种访问模式:集群内部访问、外部访问等
实现机制
- Service 是存储在 Etcd 中的资源对象
Transclude of Kube-proxy#^8t9lm2
Service 类型
- ClusterIP:默认类型,分配集群内部可访问的 IP
- NodePort:在 ClusterIP 基础上,通过节点端口暴露服务
- LoadBalancer:利用云提供商的负载均衡器暴露服务
- ExternalName:将服务映射到外部名称
与其他组件关系
- Service 与 Pod 通过标签选择器(Label Selector)建立关联
- Service 定义存储在 Etcd 中,由 API 服务器管理
- Kube-proxy 负责实现 Service 的网络功能
father:: kubernetes