zoukankan      html  css  js  c++  java
  • 容器技术与资源隔离

    简单的讲就是,Linux namespace 允许用户在独立进程之间隔离 CPU 等资源。进程的访问权限及可见性仅限于其所在的 Namespaces 。因此,用户无需担心在一个 Namespace 内运行的进程与在另一个 Namespace 内运行的进程冲突。甚至可以同一台机器上的不同容器中运行具有相同 PID 的进程。同样的,两个不同容器中的应用程序可以使用相同的端口。

    与虚拟机相比,容器更轻量且速度更快,因为它利用了 Linux 底层操作系统在隔离的环境中运行。虚拟机的 hypervisor 创建了一个非常牢固的边界,以防止应用程序突破它,而容器的边界不那么强大。另一个区别是,由于 Namespace 和 Cgroups 功能仅在 Linux 上可用,因此容器无法在其他操作系统上运行;Docker 实际上使用了一个技巧,并在非 Linux 操作系统上安装 Linux 虚拟机,然后在虚拟机内运行容器。

    虽然大多数IT行业正在采用基于容器的基础架构(云原生解决方案),但必须了解该技术的局限性。 传统容器(如Docker,Linux Containers(LXC)和Rocket(rkt))并不是真正的沙箱,因为它们共享主机操作系统内核。 它们具有资源效率,但攻击面和破坏的潜在影响仍然很大,特别是在多租户云环境中,共同定位属于不同客户的容器。

    当主机操作系统为每个容器创建虚拟化用户空间时,问题的根源是容器之间的弱分离。一直致力于设计真正的沙盒容器的研究和开发。 大多数解决方案重新构建容器之间的边界以加强隔离。譬如来自IBM,Google,Amazon和OpenStack的四个独特项目,这些项目使用不同的技术来实现相同的目标,为容器创建更强的隔离。

    • IBM Nabla在Unikernels之上构建容器
    • Google gVisor创建了一个用于运行容器的专用客户机内核
    • Amazon Firecracker是一个用于沙盒应用程序的极轻量级管理程序
    • OpenStack将容器放置在针对容器编排平台优化的专用VM中
  • 相关阅读:
    mysql分表和表分区详解
    CNN 文本分类
    基于深度学习的目标检测研究进展
    标注工具
    在Ubuntu登陆界面输入密码之后,黑屏一闪后,又跳转到登录界面
    R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列深度学习检测方法梳理
    LeNet,AlexNet,GoogleLeNet,VggNet等网络对比
    nginx使用与配置入门指南
    CentOS 7上重新编译安装nginx
    酸汤肉沫豆腐
  • 原文地址:https://www.cnblogs.com/jacksonxiao/p/11298655.html
Copyright © 2011-2022 走看看