关于k8s的书籍和官网看的很多,但要数讲的最深的,当属张磊在极客时间上的课程《深入剖析Kubernetes》,对应链接:https://time.geekbang.org/column/intro/100015201,本文结合前四章,记录docker和k8s的简单发展史,可以快速了解这一段时间的发展和部分名词的定义
1.2013年 dotCloud的docker公司,开源容器项目docker代码;后续更名为Docker公司
2.2014年,Docker发布Swarm项目,意在PAAS解决集群化部署问题
3.2014-2015年,Docker收购了Fig,发布Docker-compose来解决"容器编排"问题
4.2015年,由于Docker的快速发展,在容器化上有很大话语权,届时其他的PAAS厂商或者容器化厂商,需要重夺优势,于是成立了CNCF(cloud native computing foundation),意在推崇Kubernetes来解决容器化问题;而k8s瞬间收到疯狂追捧,直接抢占了规模化集群部署和容器编排的市场。
IAAS思想:将物理机虚拟成虚拟机,出现IAAS来解决这类问题
PAAS思想:如何在虚拟机上部署应用?本地环境和生产环境不一致,如何打包部署?需要部署多台服务器,如何实现?出现PAAS来解决这类问题
Docker思想:在PAAS解决上述问题时,绕不开的是打包和部署,而部署用容器化部署,本质上是Namespace和Cgroup来做这块,但是如何打包保证本地远程环境一致,Docker的image镜像横空出世,解决了这块的问题,使得Docker一下子步入大家的视野
Kubernetes思想:k8s杀出之前,存在docker swarm和mesos两者支撑大规模集群部署,前者拥有和docker生态无缝兼容的优势,后者则是拥有大规模集群部署的经验能力;而CNCF主要是由Google和RedHat牵头的,k8s本身又是脱胎于borg和omega这两个google本身已经开发的系统,自身已经集成了pod、sidebar等设计理念,加之Kubernetes重开发者思想,在每一层的API上都充分支持开发者撰写插件接入,其发展态势瞬间超越docker