Kubernetes和Docker到底有啥关系?

Kubernetes和Docker到底有啥关系?

24 人 赞同了该文章

最近项目用到kubernetes(以下简称k8s,k和s之间有8个字母),虽然之前也有简单使用过,但认识也不是很全面。也看到很多老铁对Kubernetes和Docker之间的关系搞不清楚,所以我收集整理了两者之间的相关说明,供大家参考学习。

简要介绍:

官方定义1:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。

官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

与传统技术对比:

接下来我们看两张经典的图:

一、从虚拟化角度:

图1:

Kubernetes和Docker到底有啥关系?_第1张图片 Kubernetes和Docker到底有啥关系?_第2张图片


图1是Docker容器与传统虚拟化方式的不同之处,传统的虚拟技术,在将物理硬件虚拟成多套硬件后,需要再每套硬件上都部署一个操作系统,接着在这些操作系统上运行相应的应用程序。而Docker容器内的应用程序进程直接运行在宿主机(真实物理机)的内核上,Docker引擎将一些各自独立的应用程序和它们各自的依赖打包,相互独立直接运行于未经虚拟化的宿主机硬件上,同时各个容器也没有自己的内核,显然比传统虚拟机更轻便。

每个集群有多个节点,每个节点可创建多个容器,kuberbete就是管理这些应用程序所在的小运行环境(container)而生。

二、从部署角度

图2:


注意,大家别把这幅图与上面Docker的那张图混淆了,图1是从虚拟化角度,说明了为应用提供必要的运行环境所需要做的虚拟化操作(即:传统:虚拟出的虚拟机装操作系统、Docker:容器引擎管理下的容器)。

而图2是在这些具体运行环境上进行真实应用部署时的情况,传统方式是将所有应用直接部署在同一个物理机器节点上,这样每个App的依赖都是完全相同的,无法做到App之间隔离,当然,为了隔离,我们也可以通过创建虚拟机的方式来将App部署到其中(就像图1上半部分那样),但这样太过繁重,故比虚拟机更轻便的Docker技术出现,现在我们通过部署Container容器的技术来部署应用,全部Container运行在容器引擎上即可。既然嫌弃虚拟机繁重,想用Docker,那好,你用吧,怎么用呢?手动一个一个创建?当然不,故kubernetes技术便出现了,以kubernetes为代表的容器集群管理系统,这时候就该上场表演了。

说白了,我们用kubernetes去管理Docker集群,即可以将Docker看成Kubernetes内部使用的低级别组件。另外,kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。


往期精彩

《Docker是什么?》

《Kubernetes是什么?》

《Kubernetes和Docker到底有啥关系?》

《教你如何快捷的查询选择网络仓库镜像tag》

《Docker镜像进阶:了解其背后的技术原理》

《教你如何修改运行中的容器端口映射》

《k8s学习笔记:介绍&上手》

《k8s学习笔记:缩扩容&更新》

《Docker君带你认识Docker Swarm》

《Docker 基础用法和命令帮助》

《在K8S上搭建Redis集群》

《灰度部署、滚动部署、蓝绿部署》

《PM2实践指南》

《Docker垃圾清理》

《Kubernetes(k8s)底层网络原理刨析》

《容器环境下Node.js的内存管理》

《MySQL 快速创建千万级测试数据》

《Linux 与 Unix 到底有什么不同?》

《浅谈几种常见 RAID 的异同》

《如何超越你身边的大多数人》

《Git 笔记-程序员都要掌握的 Git》

《老司机必须懂的MySQL规范》

《2019版最新Linux 技能图谱,你值得拥有!》

《Docker中Image、Container与Volume的迁移》

《漫画|如何用Kubernetes搞定CICD》

《写给前端的Docker实战教程》

《MySQL 面试,必须掌握的 8 个知识点》

《Linux 操作系统知识地图2.0,我看行》

《16个概念带你入门 Kubernetes》


免责声明:本文内容来源于网络,所载内容仅供参考。转载仅为学习和交流之目的,如无意中侵犯您的合法权益,请及时联系Docker中文社区!


想了解更多Docker相关知识,请微信搜索“Docker中文社区”或扫描下方二维码关注微信号


Kubernetes和Docker到底有啥关系?_第3张图片 Kubernetes和Docker到底有啥关系?_第4张图片 Docker中文社区
发布于 2019-10-17
云计算
Kubernetes
Docker
​ 赞同 24​ ​ 3 条评论
​ 分享
​ 喜欢 ​ 收藏
赞同 24
分享

你可能感兴趣的:(docker)