既然有了Docker, 为什么还要Kubernetes ?
常言道:“一千个读者眼里有一千个哈姆雷特”。同样的话也适用于 Kubernetes,同样的系统在不同的开发人员眼中也是不同的,甚至在不同阶段对于它的理解也截然不同。
在尚未开始学习Kubernetes之前,我认为它是一套非常复杂的系统,各种抽象概念以及复杂的安装过程。差点因为安装不顺,打算就此放弃。理由很简单:既然有了 Docker,为什么还要 Kubernetes?
之所以觉得Kubernetes系统复杂、难,关键是不知道它到底是干啥的?再加上老版本繁琐的安装过程,愿意啃它是需要一点毅力的。现在,就通过一张简单的对比图告诉你,它到底干了啥!
单看图示上部分,发生的变化仅仅是HOST换成了Pod,底层网络由真实网络换成了覆盖网络,即虚拟网络。对于APP应用开发者而言,即使你完全不懂容器技术也没关系.这是Kubernetes的厉害之处,它提供的抽象层对于APP应用开发者而言是完全透明的。应用在POD中和在HOST主机上并没有本质区别。
还是老问题: 既然有了 Docker,为什么还要 Kubernetes?
回答这个问题,得从为什么需要引入Docker这个问题先开始。你会说,因为需要容器化部署。那为什么需要容器化部署呢?就这个问题还可以走得更远一点。这里我就偷懒了,先打住。看看容器化部署后出现的新问题,即容器实例越来越多。因为容器实例越来越多,就像鸡蛋太多需要一个篮子来装一样,Kubernetes就是那个篮子。当然这不是一个简单的篮子,此处也不扩展了。
标准答案就是:因为有了 Docker,所以才要Kubernetes。是不是感觉进入一个loop,我也这感觉。
从图中也可以看出,Docker容器技术是Kubernetes平台的基础。容器技术主要作用是隔离,通过对系统的关键资源的隔离,实现了主机抽象。Kubernetes平台则是在抽象主机的基础上,实现了集群抽象。
如果用一句话做个总结,就是:
- 容器,提供应用级的主机抽象;Kubernetes,提供应用级的集群抽象。
你也许感兴趣的:
- 多用户环境中的 rootless Docker
- Docker Image 终极理解
- 【程序员搞笑图片】听起来不错的方法
- Docker 1 号员工亲述:我们曾犯下的 3 个错误!
- Docker 的诅咒:曾以为它是终极解法,最后却是“罪大恶极”?
- 如何检查 Docker 镜像是否存在漏洞
- Docker+Wasm 第 2 个技术预览版发布,新增 3 个运行时引擎支持
- “虚伪”的 Docker 开始清退开源组织,不付费就删除所有镜像!
- Docker正在淘汰开源组织,想赚钱可以但吃相越来越难看了
- 优化 docker 镜像的几种方法
你对本文的反应是: