Kubernetes(简称K8s)是用8代替名字中间的8个字符“ubernete”而成的缩写。它是Google在2014年创建并管理的,是Google 10多年大规模容器管理技术Borg的开源版本。
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用。它的目标是让部署容器化的应用简单并且高效。Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes集群由Master和Node两个节点组成。在Master上运行etcd、Api Server、Controller Manager和Scheduler四个组件。后三个组件构成了Kubernetes的总控中心,负责对集群中所有资源进行管控和调度。在每个node上运行kubectl、proxy和docker daemon三个组件,负责对节点上的Pod的生命周期进行管理,以及实现服务代理的功能。另外所有节点上都可以运行kubectl命令行工具。Controller Manager中的node controller通过Api server定期读取这些节点状态信息,并做响应处理。
相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。