①. 部署方式的变迁
①. 传统部署时代
在物理服务器上运行应用程序
无法为应用程序定义资源边界
导致资源分配问题
例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况, 结果可能导致其他应用程序的性能下降。 一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展, 并且维护许多物理服务器的成本很高。
②. 虚拟化部署时代
作为解决方案,引入了虚拟化
虚拟化技术允许你在单个物理服务器的CPU上运行多个虚拟机(VM)
虚拟化允许应用程序在VM之间隔离,并提供一定程度的安全
一个应用程序的信息不能被另一应用程序随意访问
虚拟化技术能够更好地利用物理服务器上的资源
每个VM是一台完整的计算机,在虚拟化硬件之上运行所有组件,包括其自己的操作系统。
缺点:虚拟层冗余导致的资源浪费与性能下降(如下图都需要virtual Machine、Operating System等)
③. 容器部署时代
容器类似于VM,但可以在应用程序之间共享操作系统(OS)
容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等
由于它们与基础架构分离,因此可以跨云和 OS 发行版本进行移植
Docker隔离原理 - namespace 6项隔离(资源隔离)与 cgroups 8项资源限制(资源限制)
.Kubernetes官网地址