业务是基于应用运转的,大部分应用是运行在服务器之上的,每个服务器只能运行一定数量的应用.尚没有技术保证服务器上能同时稳定运行多个应用.
服务器只能按照应用预估的消耗来采购,因而会出现服务器性能不足或者长期闲置的情况.
虚拟机技术将一个物理机划分为多个虚拟的机器,虚拟机的配置可以在物理机的总体限制下进行分配,从而提高物理资源的利用率.
虚拟机的缺点:
容器模型和虚拟机模型相似,但容器不会独占操作系统,实际上宿主机上的容器是共享一个操作系统,因此节省了大量的系统资源.同时容器还具有启动快和便于迁移等优势.
现代容器技术起源于Linux,Google LLC就贡献了很多容器相关的技术到Linux内核中.
近年来内核命名空间(Kernel Namespace),控制组(Control Group),联合文件系统(Union File System)以及Docker对容器发展影响较大.
Windows容器核心的实现使用了Windows内核技术,用户空间是通过Docker来完成与Windows容器之间的交互的,这使得Docker在Windows上的体验跟在Linux上几乎一致.
运行中的容器共享宿主机的内核,这意味着一个基于Windows的容器化应用在Linux主机上是无法运行的.可以简单地理解为Windows容器需要运行在Windows宿主机上,Linux容器需要运行在Linux宿主机上,但是实际场景要比这复杂得多.
最近,Windows版Docker可以在Windows容器模式和Linux容器模式之间进行切换.
Kubernetes是Google的一个开源项目,并且开源之后迅速成为容器编排领域的领头羊.有一种说法
Kubernetes是保证容器部署和运行的软件体系中很重要的一部分.
Kubernetes已经采用Docker作为默认容器运行时环境,包括Kubernetes启动和停止容器,以及镜像的拉取等.Kubernetes也提供了一个可插拔的容器运行时接口CRI.CRI能够帮助Kubernetes实现运行时环境从Docker快速替换为其他容器运行时.
原文:https://www.cnblogs.com/SheezyGuo/p/12773058.html