Service
Service是分布式集群架构的核心,一个Service对象拥有如下关键特征。
- 拥有唯一指定的名称(比如mysql-server)。
- 拥有一个虚拟IP(Cluster IP、Service IP或VIP)和端口号。
- 能够提供某种远程服务能力。
- 被映射到提供这种服务能力的一组容器应用上。
Pod
Pod运行在一个被称为节点(Node)的环境中,这个节点既可以是物理机,也可以是虚拟机,一个节点上通常运行几百个Pod;
在每个Pod中都运行着一个特殊的被称为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,因此它们之间的通信和数据交换更为高效,在设计时我们可以充分利用这一特性将一组密切相关的服务进程放入同一个Pod中;最后,需要注意的是,并不是每个Pod和它里面运行的容器都能被映射到一个Service上,只有提供服务(无论是对内还是对外)的那组Pod才会被映射为一个服务。
集群管理
在集群管理方面,Kubernetes将集群中的机器划分为一个Master和一些Node。
在Master上运行着集群管理相关的一组进程kube-apiserver 、 kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且都是自动完成的。
Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。在Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁,以及实现软件模式的负载均衡器。