Kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目。Kuberentes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。

    Master节点:整个集群的控制中枢(控制节点)
    Kube-APIServer:集群的控制中枢(大脑),各个模块之间信息交互都需要经过Kube-APIServer,同时它也是集群管理、资源配置、整个集群安全机制的入口。整个集群的持久化数据,则由 kube-apiserver 处理后保存在 Etcd 中。
    Controller-Manager:集群的状态管理器,保证Pod或其他资源达到期望值,也是需要和APIServer进行通信,在需要的时候创建、更新、或删除它所管理的资源。
    Scheduler:集群的调度中心,他会根据指定的一系列条件,选择一个或一批最佳的节点,然后部署我们的Pod。
    Etcd:键值数据库,报错一些集群的信息,一般生产环境中建议部署三个以上的节点(奇数个)

    而计算节点(Master)上最核心的部分,则是一个叫作 kubelet 的组件。

    在 Kubernetes 项目中,kubelet 主要负责同容器运行时(比如 Docker 项目)打交道。而这个交互所依赖的,是一个称作 CRI(Container Runtime Interface)的远程调用接口,这个接口定义了容器运行时的各项核心操作,比如:启动一个容器需要的所有参数。
    Kubernetes 项目并不关心你部署的是什么容器运行时、使用的什么技术实现,只要你的这个容器运行时能够运行标准的容器镜像,它就可以通过实现 CRI 接入到 Kubernetes 项目当中。