《深入剖析Kubernetes》总结一:Docker的历史

Docker的盛行

一开始流行的是PaaS平台,能够帮助用户大规模部署应用到集群里;
用户把应用的可执行文件和启动脚本打进一个压缩包内,上传到云上的存储中,接着,云会通过调度器选择一个可以运行这个应用的虚拟 机,然后通知这个机器上的 Agent 把应用压缩包下载下来启动。
内部调用操作系统的 Cgroups 和 Namespace 机制为每一个应用单独创建一个称作“沙盒”的隔离环境,然后在“沙盒”中启动这些应用进程,这样,就实现了把多个用户的应用互不干涉地在 虚拟机里批量地、自动地运行起来的目的。

PaaS有一个很难受的地方,就是一旦用上了 PaaS,用户就必须为每种语言、每种框架,甚至每个版本的应用维护一个打好的包。这个打包过程麻烦的是,明明在本地运行得好好的应用,却需要做很多修改和配置工作才能在 PaaS 里运行起来。而这些修改和配置, 并没有什么经验可以借鉴,得靠不断的尝试、Debug

而Docker的镜像就解决了这个问题:Docker 镜像其实就是一个压缩包,但是这个压缩包跟PaaS 的应用可执行文件 + 启停脚本不一样。实际上,大多数 Docker 镜像是直接由一个完整操作系统的所有文件和目录构成的,所以这 个压缩包里的内容跟本地开发和测试环境用的操作系统是完全一样的,因此就不需要进行任何配置或者修改了

所以Docker就火了!

Docker的其他项目

  • Swarm(PaaS第一环)

以一个整体来对外提供集群管理功能,完全使用 Docker 项目原 的容器管理 API 来完成集群管理

  • Docker Compose:起到容器编排的作用(PaaS第二环)

“编排”(Orchestration)在云计算里主要是指用户如何通过某 些工具或者配置来完成一组虚拟机以及关联资源的定义、配置、创建、删除等工作,然后由云计算平台按照这些指定的逻辑来完成的过程;
在容器中,则是对 Docker 容器的一系列定义、配置和创建动作的管理,比如现在用户需要部署的是应用容器 A、数据库容器 B、负载均衡容器 C,那么Compose就允许用户把 A、B、C 三个容器定义在一个配置文件中,并且可以指定它们之间 的关联关系,比如容器 A 需要访问数据库容器 B。

Kubernetes

Kubernetes成功之处,在于比Swarm更加的开源,催生出了Istio等项目、与Swarm不同的特性

猜你喜欢

转载自blog.csdn.net/qq_41594698/article/details/107111733
今日推荐