Kubernetes 架构图:
Pod
K8S中最基础的调度单位是Pod,它有网络,有存储。Pod里面运行着一个或者若干个docker容器。同一个Pod里的容器共享同一个网络命名空间,可以使用localhost互相通信。可以理解成Pod就是一台主机,docker容器是运行在主机上的进程。
Replication Controller
我们一般不会手动自己创建Pod,这样很难管理。利用Replication Controller,可以定义Pod运行内容,副本的个数等信息,它的升级版本是 ReplicaSet。现在已经创建了Pod的一些副本,那么在这些副本上如何均衡负载呢?我们需要的是Service。
Service
可以把一组Pod组成服务 Service,Service有一个虚拟的ClusterIP,服务访问可以通过ClusterIP作为统一请求入口,因为一个 Service 对应一组Pod,所以可以做到负载均衡。服务可以通过 NodePort,LoadBalancer的方式暴露对外服务。注意 type = LoadBalancer需要云服务平台提供基础的服务,自建的K8S集群默认是没有这个东西的。如果在阿里云上定义服务 type = LoadBalancer 后,你会发现,在管理后台的负载均衡页面,会增加一个负载均衡器