虚拟化走向容器化介绍
2019-11-26 本文已影响0人
Hughman
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、内存、网络带宽等)使用量是不可以超过被分配的量。