6.1 服务的本质是什么

从概念上来讲,Kubernetes集群的服务,其实就是负载均衡或反向代理。这跟阿里云的负载均衡产品有很多类似的地方。和负载均衡一样,服务有它的IP地址以及前端端口,同时服务后面会挂载多个容器组作为其“后端服务器”,这些“后端服务器”有自己的IP地址以及监听端口,如图6-1所示。

图6-1 Kubernetes服务的本质

当这样的负载均衡和后端的架构与Kubernetes集群结合的时候,我们可以想到的最直观的实现方式,就是集群中某一个节点专门做负载均衡(类似Linux虚拟服务器)的角色(见图6-2),而其他节点则用来承载后端容器组。

这样的实现方法有一个巨大的缺陷,就是单点问题。Kubernetes集群是Google多年来自动化运维实践的结晶,这样的实现显然与其自动化运维的哲学是相背离的。