Service

在 Kubernetes 中,Service(服务)是分布式集群架构的核心,一个 Service 对象拥有如下关键特征:

  • 拥有一个唯一指定的名字(比如 mysql-server)。

  • 拥有一个虚拟 IP(Cluster IP、Service IP 或 VIP)和端口号。

  • 能够提供某种远程服务能力。

  • 被映射到了提供这种服务能力的一组容器应用上。

Service 的服务进程目前都基于 Socket 通信方式对外提供服务,比如 Redis、Memcache、MySQL、Web Server,或者是实现了某个具体业务的一个特定的 TCP Server 进程。

虽然一个 Service 通常由多个相关的服务进程来提供服务,每个服务进程都有一个独立的 Endpoint(IP+Port)访问点,但 Kubernetes 能够让我们通过 Service(虚拟 Cluster IP + Service Port)连接到指定的 Service 上。有了 Kubernetes 内建的透明负载均衡故障恢复机制,不管后端有多少服务进程,也不管某个服务进程是否会由于发生故障而重新部署到其他机器,都不会影响到我们对服务的正常调用。更重要的是这个 Service 本身一旦创建就不再变化,这意味着,在 Kubernetes 集群中,我们再也不用为了服务的 IP 地址变来变去的问题而头疼了。

最后更新于