zoukankan      html  css  js  c++  java
  • 虚拟化向容器化发展

    0 容器的趋势所向

      IT企业的软件开发模型由传统的客户端/服务端模型,变成浏览器/服务器模型;由物理机变成虚拟机,再变成IaaS(基础架构云)和PaaS(应用云)。通过近些年的云化,很多企业实现了基础架构资源(虚拟机、网络、存储和数据库等资源)的云化和池化,用户可以通过云化讯处的获取业务应用所需的机器、数据库以及数据存储。当上层业务和下层基础架构资源完备后,中间的一个连接就应运而生——容器化,通过容器方案实现应用在基础架构资源上的“一键式”部署,快速(原来的应用需要几天甚至十几天才能全部部署完毕,现在只需要一天甚至几个小时就可以部署完毕)、便捷(原来的应用需要jar、war、rpm等方式部署,现在只需要镜像和容器化平台)且成本低(应用成本、资源成本,还有重要的人力成本在降低)。

    1 虚拟机和容器化比较

    运行在多个虚拟机上的应用

    运行在独立容器中的应用
    1)容器更加轻量级,允许在相同的硬件上运行更多数量的组件。每个虚拟机需要运行自己的一组系统进程,进程是运行在不同的操作系统上的。而一个容器仅仅是运行在宿主机上被隔离的单个进程,仅消耗应用容器消耗的资源,不会有其他进程的开销。容器低消耗
    2)虚拟机提供完全隔离的环境,每个虚拟机运行在它自己的Linux内核上,容器是调用同一个内核。

    2 容器实现隔离机制

    两种方式: Linux命名空间;Linux控制组(cgroups

    2.1 用Linux命名空间隔离进程

      Linux命名空间使每个进程只看到自己的系统视图(文件、进程、网络接口、主机名等)
      默认,每个Linux系统起始有一个命名空间,所有系统资源(如文件系统、用户ID、网络接口等)属于这个命名空间,但可以创建额外的命名空间,以及在它们之间组织资源,一个进程可以运行在其中一个命名空间中,该进程只能看到该命名空间下的资源。
      命名空间用于隔离一组特定的资源,命名空间类型如下:

    • Mount(mnt)
    • Process ID(pid)
    • Network(net)
    • Inter-process communication(ipd)
    • UTS
    • User ID(user)

    2.2 Linux控制组

      通过cgroups限制容器能使用的系统资源,cgroups升级一个Linux内容功能,可以限制一个进程或者一组进程的资源使用,一个进程的资源(CPU、内存、网络带宽等)使用量是不可以超过被分配的量。

  • 相关阅读:
    OnEraseBkgnd、OnPaint与画面重绘
    .编译ADO类DLL时报错的解决方案
    VC列表框样式
    Codeforces 131D. Subway 寻找环树的最短路径
    Codeforces 103B. Cthulhu 寻找奈亚子
    Codeforces 246D. Colorful Graph
    Codeforces 278C. Learning Languages 图的遍历
    Codeforces 217A. Ice Skating 搜索
    Codeforces 107A. Dorm Water Supply 搜图
    Codeforces 263 D. Cycle in Graph 环
  • 原文地址:https://www.cnblogs.com/Andya/p/12402855.html
Copyright © 2011-2022 走看看