Kubernetes:一张图、一句话帮你开始

常言道:“一千个读者眼里有一千个哈姆雷特”。同样的话也适用于 Kubernetes ,同样的系统在不同的开发人员眼中也是不同的,甚至在不同阶段对于它的理解也截然不同。

在尚未开始学习 Kubernetes 之前,我认为它是一套非常复杂的系统,各种抽象概念以及复杂的安装过程。差点因为安装不顺,打算就此放弃。理由很简单: 既然有了 Docker,为什么还要 Kubernetes

之所以觉得 Kubernetes 系统复杂、难,关键是不知道它到底是干啥的?再加上老版本繁琐的安装过程,愿意啃它是需要一点毅力的。现在,就通过一张简单的对比图告诉你,它到底干了啥!

单看图示上部分,发生的变化仅仅是 HOST 换成了 POD ,底层网络由真实网络换成了覆盖网络,即虚拟网络。对于 APP 应用开发者而言, 即使你完全不懂容器技术也没关系.这是 Kubernetes 的厉害之处,它提供的抽象层对于 APP 应用开发者而言是完全透明的。应用在 POD 中和在 HOST 主机上并没有本质区别。

还是老问题: 既然有了 Docker,为什么还要 Kubernetes

回答这个问题,得从为什么需要引入 Docker 这个问题先开始。你会说,因为需要 容器化部署 。那为什么需要 容器化部署 呢?就这个问题还可以走得更远一点。这里我就偷懒了,先打住。看看 容器化部署 后出现的新问题,即容器实例越来越多。因为容器实例越来越多,就像鸡蛋太多需要一个篮子来装一样, Kubernetes 就是那个篮子。当然这不是一个简单的篮子,此处也不扩展了。

标准答案就是: 因为有了 Docker,所以才要Kubernetes 。是不是感觉进入一个 loop ,我也这感觉。

从图中也可以看出, Docker 容器技术是 Kubernetes 平台的基础。容器技术主要作用是 隔离 ,通过对系统的关键资源的隔离,实现了 主机抽象Kubernetes 平台则是在 抽象主机 的基础上,实现了 集群抽象

如果用一句话做个总结,就是:

容器,提供应用级的系统抽象;Kubernetes,提供应用级的集群抽象。

小结

一篇短文,因为写另外一篇文章触发的简单总结。希望可以帮到还徘徊在 Kubernetes 大门之外的初学者。当然,新版本 Kubernetes 已经非常容易安装了。