传统部署时代
应用程序是直接部署到物理服务器上,应用程序不好拓展,也需要维护很多物理服务器导致成本增高
虚拟化部署时代
为了解决传统部署的麻烦,引入了虚拟化。虚拟化技术允许在单个物理CPU上运行多个虚拟机(VM),每个VM就是一台完整的服务器,在虚拟化硬件上运行所有组件,包括操作系统,应用程序就跑在VM中,并且VM是相互隔离的,VM之中的应用程序也不能随意相互访问,提供了安全保障。
虚拟化技术能够更好地利用服务器资源,并且更轻松的部署和更新应用程序,降低成本等
容器部署时代
容器类似于VM,但是容器具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。容器与VM类似,具有自己的文件系统、CPU、内存、进程空间等。由于它们与基础架构分离,因此可以跨云和操作系统进行移植。
现代操作系统内存区域= 用户空间 + 内核空间
内核空间作用:进程调度、内存管理、中断处理等,怼系统资源具有完全控制权
用户空间:通过api与内核空间通信
虚拟化技术:将硬件资源划分为不同的具体独立、完整且隔离资源的主机,是主机级别的虚拟化技术,向应用程序提供应用级的虚拟化接口
每个虚拟机都有自己独立的内核、内存空间
把虚拟化技术分为两种技术类型:
1.直接在硬件上就安装虚拟化技术的
2.在硬件上安装个系统,在系统之上在安装虚拟化技术的
比较主流的虚拟化技术:kvm 、xen、open
主机级虚拟化技术比较消耗资源,人们就开始探索轻量级虚拟化技术,就来到轻量级虚拟化技术,最主流的就是容器级虚拟化技术。
容器级虚拟化技术虚拟出来的是操作系统的接口,不像主机级虚拟化技术一样,虚拟出来的是主机的接口。
容器是奠定了镜像和应用交付的标准
OCI(开放容器标准)统一了低级容器的标准。(docker公司把libcontainer捐款给OCI,重新命名为runc)
CRI(Container Runtime Interface容器运行时接口) 统一了高级容器的标准
libcontainer、runc、containerd、OCI、CRI
https://mp.weixin.qq.com/s/—t74RuFGMmTGl2IT-TFrg