Kubernetes是Google开源的容器集群部署和管理系统,是PaaS领域实施的行业标准。它构建在容器技术之上,为容器化的应用提供资源调度,部署运行,服务发现,扩容缩容等一整套功能,本质上是基于容器技术的调度平台,架构图如图1所示。
Kubernetes主要功能:
Kubernetes发展非常迅速,已经成为容器编排领域的领导者。
Docker容器本质上是HostOS主机上的进程,Docker通过namespace和Cgroups实现了资源隔离及限制。Linux内核实现namespace的一个目的就是实现轻量级虚拟化服务,在同一个namespace下的进程可以感知彼此的变化,而对外界的进程一无所知。在同一namespace内可实现用户、主机名与域名、信号量、网络、文件系统及进程的隔离。Cgroups可以限制、记录任务组使用的物理资源(包括CPU、Memory和IO),为容器实现虚拟化提供基础。Cgroups提供四大功能:
Docker使用典型C-S架构模式,用户通过Docker Client与Docker Daemon建立通信并将请求发送给后者,Docker Client是一个泛称,用来向Docker Daemon发起请求,执行相应的容器管理操作。它既可以是命令行工具Docker,也可以是Docker API客户端。Docker daemon是Docker最核心的后台进程,它负责响应来自Docker Client的请求,然后将这些请求翻译成系统调用完成容器管理操作。Docker镜像管理模块统称为Image Management,支持从Docker Registry中下载镜像,并将镜像文件存储于文件系统中。Docker网络支持Host物理网络、虚拟网桥以及Overlay网络。