k8s中的服务(Service),详细列举
我们来非常详细地列举和解释 Kubernetes 中的 服务(Service)。
Service 是 Kubernetes 最核心的概念之一,它解决了 Pod 访问的核心问题:服务发现 和 负载均衡。
一、Service 的核心作用与要解决的问题
在理解 Service 类型之前,首先要明白为什么需要它。Pod 具有以下特征:
- 动态的: Pod 可以被销毁和创建(例如,滚动更新或扩缩容)。
- 临时的: 每次重启,Pod 会获得一个新的 IP 地址。
- 多实例的: 一个应用通常由多个 Pod 副本同时运行以提高可用性。
这就引出了两个问题:
- 服务发现(Service Discovery): 前端 Pod 如何知道它要访问的后端 Pod 的当前 IP 地址?
- 负载均衡(Load Balancing): 如何将客户端的请求均匀地分发给多个提供相同服务的 Pod 副本?
Service 正是为了解决这些问题而生的抽象层。 它为一组功能相同的 Pod 提供一个稳定的访问入口(VIP 或 DNS 名)。