【读书笔记】06|白话容器基础(二):隔离与限制

《深入剖析Kubernetes - 06 | 白话容器基础(二):隔离与限制》

创新互联专注于企业全网营销推广、网站重做改版、即墨网站定制设计、自适应品牌网站建设、H5开发商城网站定制开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为即墨等各大城市提供网站开发制作服务。

1、隔离

虚拟机VM与 容器 docker的主要区别在于,虚拟机依赖 Hypervisor 层实现资源隔离和虚拟化,而容器的实现都是依赖OS 本身

虚拟机VM 在不做优化的情况下,本身就会占用100-200M 的内存,另外如果涉及到宿主机一些底层调用,都必须经过虚拟化软件的拦截和处理,这里会多一层性能损耗,主要体现在网络 和磁盘 I/O

容器的隔离机制也不是十全十美,最大的问题就是隔离不彻底,主要体现在:

(1) 例如在容器内执行free、top 等命令,看到的数据都是宿主机上面的信息,原因是 proc 并没有隔离;另外一个例子,很多应用程序运行在容器中都不能很好的识别内存、CPU的限制,典型的如 java

(2) 虽然每个容器可以通过mount namespace隔离的机制挂载不同的操作系统文件,但底层都是基于同一个操作系统(同一个操作系统内核),这就意味着在windows 上运行linux容器,或者低版本linux宿主机上运行高版本linux容器都是不可以的

2、限制 (cgroups)

通过cgroups 实现对一个进程组的资源使用上限进行限制,如内存、cpu、网络带宽、磁盘等

Cgroups 给用户暴露出来的操作接口是文件系统,即它以文件和目录的方式放在/sys/fs/cgroup 路径下

root@ubuntu:~# mount -t cgroup
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)

当前名称:【读书笔记】06|白话容器基础(二):隔离与限制
本文网址:http://lszwz.com/article/jjgegd.html

其他资讯

售后响应及时

7×24小时客服热线

数据备份

更安全、更高效、更稳定

价格公道精准

项目经理精准报价不弄虚作假

合作无风险

重合同讲信誉,无效全额退款