云原生架构系列——资源隔离

1 为什么要对资源进行隔离

举个例子,假设现在你有一套一室一厅的房子,你想把这套房子出租出去,租金是1200/月。但是如果你把这套房子隔成三个单间,主卧600/月,两个次卧400/月,每个月的总房租就变成了1400/月,这样不仅提高了房屋的利用率也增加了收益。对于服务器资源也是一样,硬件资源是固定的,通过软件把硬件资源分隔成多个单独的资源,这每个独立的资源就可以租给不同的客户商。通过软件实现隔离还有一个好处就是弹性扩容,这是云计算技术一个非常重要的特性。实现资源隔离主要有两种技术:虚拟化技术和容器技术。

2 虚拟化技术

在这里插入图片描述
虚拟化架构如上图所示:

  • Hardware Layer:硬件层,即硬件资源
  • Hypervisor:也叫虚拟机监视器(Virtual Machine Monitor,VMM),是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机。是所有虚拟化技术的核心。
  • VM:虚拟机(Virtual Machine)
  • Guest OS:客体机操作系统
  • Applications:运行在客体机上的应用
    虚拟化技术会在宿主机上虚拟出多个虚拟机,这些虚拟机是完全隔离的
    在这里插入图片描述
    常见的虚拟化管理平台有:OpenStack、KVM、VMware

3 容器技术

容器技术已经经历过了几代的发展,目前最流行的是docker。docker是进程级别的隔离,直接运行在宿主机之上,省去了传统虚拟化中的Hypervisor层,不需要虚拟硬件资源,不需要客体机,所以容器是一种轻量级的虚拟化技术,比传统虚拟化技术更节省资源、性能更高。
在这里插入图片描述
在创建容器时,docker引擎会把磁盘上的容器镜像运行成宿主机上的一个进程。
docker是基于Linux内核上的Cgroup和Namespace技术来实现资源隔离的:

  • Cgroup:即Control Group,是对进程间使用系统资源(CPU、存储等)进行限制和隔离
  • Namespace:即命名空间,每个Namespace的资源是相互独立的,所以进程在各自的Namespace下 使用资源不会形成干扰。Linux内核总共实现了6中Namespace图片来自《Docker进阶与实战》
    docker能够屏蔽因环境不一致而导致的一些问题,docker把应用和应用依赖的操作系统、jdk环境、jar包等打包成一个镜像,就像是一个集装箱,不管运行在开发、测试、线上哪个环境,都能保证版本的一致性,这样就不会出现因操作系统版本、jdk版本等基础环境的不一致而出现一些比较奇葩的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值