架构师之路 -- 虚拟化技术与容器Docker

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 通常架构师们为了提高系统及硬件资源的利用率引入了虚拟化技术。

虚拟化是一种资源管理技术,它可以把各种实体资源抽像后再分隔,从而打破实体结构的限制,最大程度的提高资源的利用率。


今天我们来聊一下传统虚拟化技术和以Docker为代表的容器技术。


虚拟化


虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。


虚拟化出现的初衷主要是为了减少物理服务器的数量,提高服务器资源利用率。利用虚拟化技术将物理服务器隔离成多个小的虚拟服务器并提供部署能力。


简单来说,虚拟化可以为我们的工作带来以下几种便利:


  • 减少物理服务器数量
  • 提高资源利用率
  • 可实现环境隔离
  • 可实现资源隔离
  • 虚拟机可实现分钟级交付
  • 虚拟机的配件可动态扩容
  • 虚拟机的计算节点可动态迁移


虚拟化技术


我们主要使用Hypervisor,也叫做VMM(Virtual Machine Monitor,虚拟机监视器)来实现服务器的虚拟化,Hypervisor它不是一款具体的软件,而是一类软件的统称。像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。


VMware大家应该很熟悉,就是VMware Workstation。学习Linux的话,很多人都是在windows系统下安装WMware,然后创建Linux虚拟机。


1.png


Linux服务器一般是使用KVM作为虚拟化工具,KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。


2.png


虚拟化平台架构


虚拟化平台主要有以下三种架构:


  • 本地存储


3.png


物理机上运行虚拟机,虚拟机的盘在物理机的磁盘上


  • 集中存储


4.png


运行虚拟机的物理机,虚拟机的磁盘在共享存储中。在集中存储架构中如果一台host挂了,VM可以通过平台的设置去另外一台物理机上运行,这就实现了虚拟机的动态漂移。


  • 分布式存储


5.png


分布式存储架构中虚拟机的磁盘位于所有服务器上,这种架构也叫“计算存储一体化”,虚拟机的磁盘会打散成很多块块,这些块块分布于集群内所有的机器上,这样就实现了存储能力的最大化。


虚拟机的IO不再受限于单机的磁盘,而是利用到整个集群里磁盘的能力。削峰填谷、提高了虚拟机的IO能力,而且通过冗余保障了数据的安全性。


这种架构的缺点是严重依赖网络稳定性,一旦网络挂了,所有的虚拟机就会全挂。


虚拟化平台的高可用机制


虚拟化平台的高可用机制是指虚拟机所在的物理机挂了后可以将虚拟机快速切换到另外一台物理机运行。


高可用的前提条件是物理机挂了,对于虚拟机内部的故障并没有检测机制,属于不完整的高可用方案,主要是基于以下两个目标:


  • 虚拟机计算节点动态迁移


  • 虚拟机磁盘动态迁移


虚拟化原则

虚拟机的出现是为了使一些大的计算资源分割成许多小的资源然后灵活调配 ,遵循的是分而治之的原则,如果一个虚拟机申请了物理机超过一半的资源就违背了这个原则,那样还不如直接使用物理机来的干脆,所以我们在使用虚拟化的时候一般要遵循以下几个原则:


  • 某一虚拟机所占资源不超过宿主机的40%
  • 不承载磁盘IO密集型组件(数据库,消息队列,搜索引擎)
  • 以双路2U服务器来说,整合比控制在1:4 – 1:10较为理想
  • CPU可一定程度上超量分配,最多可以超分一倍左右
  • 内存一般不可超量分配


Docker容器


在使用虚拟化一段时间后,发现它存在一些问题:


  • 虚拟机的系统层会占用比较多物理机的资源,需要更进一步提高服务器的资源利用率


  • 当需要迁移虚拟机服务程序时,需要迁移整个虚拟机,迁移流程复杂


为了解决这些问题,我们就引入了 容器。 而大家常听说的 Docker,就是创建容器的工具,是应用容器引擎。


容器也是虚拟化,但是属于“轻量级”的虚拟化。它的目的和虚拟机一样,都是为了创造“隔离环境”。但是,它又和虚拟机有很大的不同——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。


6.png


虚拟化 vs 容器


虚拟化 VS 容器


相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。


我们可以通过下面这张图来看虚拟化与容器之间的性能、资源利用率差距,非常明显


7.png


容器编排


利用Docker可以很方便的创建容器,但是当容器数量达到一定规模,就需要编排工具去管理,就是容器生命周期管理工具。


容器编排工具提供调度和管理集群的技术,提供用于基于容器应用可扩展性的基本机制。这些工具使用容器服务,并编排他们以决定容器之间如何进行交互。


容器编排工具很多,有Docker Swarm,Kubernetes,Mesos,Rancher,下面用一张图来对比下这些容器编排工具的特点及各自的优势。


8.png


小结

今天主要对虚拟化技术及容器做了个简单的梳理,虚拟化和容器初衷与目的都是为了更好的提高资源利用率,至于两者之间的不同大家要务必记住一点:虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。

目录
相关文章
|
14天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
8天前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
127 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
14天前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####
|
19天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
46 4
|
19天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
47 3
|
21天前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
43 1
|
21天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
42 1
|
22天前
|
安全 持续交付 Docker
深入理解并实践容器化技术——Docker 深度解析
深入理解并实践容器化技术——Docker 深度解析
43 2
|
16天前
|
人工智能 Kubernetes Cloud Native
荣获2024年AI Cloud Native典型案例,阿里云容器产品技术能力获认可
2024全球数字经济大会云·AI·计算创新发展大会,阿里云容器服务团队携手客户,荣获“2024年AI Cloud Native典型案例”。
|
21天前
|
Cloud Native 持续交付 云计算
云原生技术在现代IT架构中的转型力量####
本文深入剖析了云原生技术的精髓,探讨其在现代IT架构转型中的关键作用与实践路径。通过具体案例分析,展示了云原生如何赋能企业实现更高效的资源利用、更快的迭代速度以及更强的系统稳定性,为读者提供了一套可借鉴的实施框架与策略。 ####
23 0