从过去物理机和虚拟机为主体的开发运维环境,向以容器为核心的基础设施的转变过程,并不是一次温和的改革,而是涵盖了对网络、存储、调度、操作系统、分布式原理等各个方面的容器化理解和改造。
关于Linux内核、分布式系统、网络、存储等是真正掌握容器技术体系的精髓所在。
容器编排与Kubernetes核心特性剖析:“编排”容器都是容器云项目的灵魂所在,也是kubernetes社区持久生命力的源泉
从分布式系统设计的视角出发,抽象和归纳出这些特性中体现出来的普遍方法,带着这些指导思想逐一阐述kubernetes项目关于编排、调度和作业管理的各项核心特性
kubernetes开源社区与生态:“开源生态”永远都是容器技术和kubernetes项目成功的关键
PaaS开源项目的出现,就是解决这个问题的最佳方案,核心是一套应用的打包和分发机制。
需要在同一个虚拟机上启动很多个来自不同用户的应用,PaaS开源项目会调用操作系统的Cgroup和Namespace机制为每个应用单独创建一个沙盒的隔离环境,然后在沙盒中启动这些应用,实现了把多个用户的应用互不干涉地在虚拟机里批量地、自动地运行起来的目的。
这正是PaaS项目最核心的能力,运行应用的隔离环境,或者说沙盒,就是所谓的容器。
Docker项目与大部分PaaS项目的功能和实现原理是一样的,剩下不同的一小部分使得Docker成为无敌的存在:
PaaS能够帮助用户大规模部署应用到集群里,是因为它提供了一套应用打包的功能,也是这个功能让他凉了。用户需要为不同的语言、框架,甚至每个版本的应用都维护一个打好的包,并且打好的包在本地能运行上了云可能要修改很多参数和配置。虽然PaaS项目能够一键部署,但是为每个应用打包的工作太累。
Docker镜像解决的就是打包问题。
这是Docker镜像最厉害的地方,只要有了这个压缩包,在使用某种技术创建一个沙盒,在沙盒中解压这个包,就可以运行本地开发的程序了。这个过程中完全不需要修改任何的配置,这个压缩包使得本地环境和云环境高度一致。
镜像解决了应用打包的难题,还需要有组件能够完成大规模应用部署的职责。
Docker Swarm,原生的容器集群管理项目。
由Fig项目改名而来。
编排指用户如何通过某些工具或者配置来完成一组虚拟机以及关联资源的定义、配置、创建、删除等工作,然后由云计算平台按照这些指定的逻辑来完成的过程。
容器时代、编排就是对Docker容器的一系列定义、配置和创建动作的管理。
Kubernetes社区以开发者为核心,构建一个相对民主和开放的容器生态。