容器化技术Docker和K8S的区别详解

Docker

Docker 是一个开源的平台,主要用于容器化技术,提供了:容器的构建、分发、和运行能力。

图片

Docker容器化,将应用及其依赖,打包到一个轻量级的容器中,就类似生活中的“集装箱”。

如下图所示:

图片

容器化,将应用程序、及其所有依赖(如:库、配置文件...等)打包到一个独立、可移植的单元中,就类似上图的“集装箱”。

容器与主机系统隔离,但共享操作系统内核,从而实现轻量化、和高效运行。

K8s

Kubernetes (K8S),是一个容器编排平台,是“Google”开发的容器编排平台。

K8S,专注于在多节点(分布式集群)环境中管理、调度和编排容器化应用。

如下图所示:

图片

Kubernetes (K8S),容器编排通过自动化部署、调度...等等,解决了容器化应用在大规模分布式环境中的管理复杂性问题。

Docker和K8S区别

图片

Docker主要解决:创建、和运行容器,而 Kubernetes (K8S),是管理这些容器的编排,两者的关注点不一样。

Kubernetes(K8S),除了可以运行Docker容器化,还可以 运行其它容器,比如:containerd、CRI-O...等等。

如果只需管理单机、或少量容器,使用 Docker 即可。

如果需要跨节点的容器编排、和管理,选择 Kubernetes。

Kubernetes(K8S),提供了更强大的容器编排功能,适合大规模应用场景。

来源:mikechen mikechen的架构笔记

THE END