订阅
纠错
加入自媒体

关于容器和容器运行时那些事

2020-08-11 09:55
EAWorld
关注

2.容器 VS. 虚机

Linux的容器和虚拟机的差比我想大家都比较了解了,我这里再简单叙述一下:

对于使用虚拟机的传统虚拟化,每个虚拟机都有自己的完整操作系统,因此在运行内置于虚拟机的应用程序时,内存使用量可能会高于必要值,虚拟机可能会开始耗尽主机所需的资源。容器共享操作系统环境(内核),因此它们比完整虚拟机使用更少的资源,并减轻主机内存的压力。

传统虚拟机可占用大量磁盘空间:除了虚拟机托管的任何应用程序外,它们还包含完整的操作系统和相关工具。容器相对较轻:它们仅包含使容器化应用程序运行所需的库和工具,因此它们比虚拟机更紧凑,并且启动速度更快。

在更新或修补操作系统时,必须逐个更新传统计算机:必须单独修补每个客户操作系统。对于容器,只需更新容器主机(托管容器的机器)的操作系统。这显著简化了维护。

利用这些优势容器在软件开发领域里迅速发展,我已经很习惯用容器去安装各种软件应用,因为它开销很小,而且隔离性很好,我可以很方便的使用同一个软件的多个版本而不用担心冲突问题。

Linux的的容器技术是如何做到这些的呢?我们来看看构建容器技术的两个核心功能命名空间Namespace和控制组CGroup。

3.命名空间 Namespace

命名空间是Linux内核的一项功能,该功能对内核资源进行分区。控制进程可以访问的资源,以使一组进程看到一组资源,而另一组进程看到另一组资源。资源可能存在于多个空间中。Linux系统以每种类型的单个名称空间开始,供所有进程使用。进程可以创建其他名称空间,并加入不同的名称空间。

Linux下常见的命名空间有:

挂载Mount mnt

进程Id pid

网络 net

进程间通信 ipc

用户Id user

UTS

简单的讲,利用Namespace可以实现我们想要的资源隔离,控制哪些资源可以使用。

4.控制组 CGroup

CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物理资源 (如 cpu memory i/o 等等) 的机制。2007 年进入 Linux 2.6.24 内核,CGroups 不是全新创造的,它将进程管理从 cpuset 中剥离出来,作者是 Google 的 Paul Menage。CGroups 也是 LXC 为实现虚拟化所使用的资源管理手段。

CGroup 是将任意进程进行分组化管理的 Linux 内核功能。CGroup 本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为 CGroup 子系统或控制器。CGroup 子系统有控制内存的 Memory 控制器、控制进程调度的 CPU 控制器等。运行中的内核可以使用的 Cgroup 子系统由/proc/cgroup 来确认。

CGroup的主要功能:

资源限制,可以将组设置为不超过配置的内存限制,其中还包括文件系统缓存[8] [9]

优先次序,一些组可能会在CPU利用率或磁盘I / O吞吐量中获得更大份额。

会计,衡量组的资源使用情况,例如可用于计费目的

控制,冻结进程组,记录检查点并重新启动

CGroup常见的子系统包括:

blkio 对块设备(比如硬盘)的IO进行访问限制

cpu 设置进程的CPU调度的策略,比如CPU时间片的分配

memory 用于控制cgroup中进程的占用以及生成内存占用报告

net_cls 使用等级识别符(classid)标记网络数据包,这让 Linux 流量控制器 tc (traffic controller) 可以识别来自特定 cgroup 的包并做限流或监控

net_prio 设置cgroup中进程产生的网络流量的优先级

hugetlb 限制使用的内存页数量

pids 限制任务的数量

ns 可以使不同cgroups下面的进程使用不同的namespace.

每个subsystem会关联到定义的cgroup上,并对这个cgroup中的进程做相应的限制和控制.

简单的讲,利用CGroup,可以控制能使用的资源的量。

有了Namespace和CGroup这两个特性,容器做到了控制资源隔离和访问的量。但是我们还是需要方便的管理功能和接口,Docker在容器的基本功能的基础上提供了出色的管理功能和接口,成为了容器领域里的事实标准,我们一般说容器,默认的是用Docker的技术。

<上一页  1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    云计算 猎头职位 更多
    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号