容器如何落地在华为公有云??

举报
Ben_5003 发表于 2019/05/16 15:55:41 2019/05/16
【摘要】 容器(container),并不是一种虚拟化(virtualization)技术,而是一种进程隔离(isolation)技术,从内核空间、资源和安全等方面对进程做隔离。Linux 容器采用 Linux 控制组(cgroups)和命名空间(namespace),其中,cgroups 定义了一个进程能使用什么(CPU、内存、网络等资源),namespace 定义了一个进程能看到什么(uid,gi...

容器(container),并不是一种虚拟化(virtualization)技术,而是一种进程隔离(isolation)技术,从内核空间、资源和安全等方面对进程做隔离。

Linux 容器采用 Linux 控制组(cgroups)和命名空间(namespace),其中,cgroups 定义了一个进程能使用什么(CPU、内存、网络等资源),namespace 定义了一个进程能看到什么(uid,gid,pid,mount,filesystem等)。一方面,并非所有系统资源都可以通过这些机制来控制。另一方面,在Linux 容器中运行的应用程序与常规(非容器化)应用程序以相同的方式访问系统资源;直接对主机内核进行系统调用。内核以特权模式运行,允许它与必要的硬件交互并将结果返回阴应用程序。因此,即使使用了很多限制,内核仍然面向恶意程序暴露出了过多的攻击面。除了cgroups 和 namespace,Linux 容器还会使用到象 seccomp 这样的技术。seccomp是内核防火墙,限制一个进程对内核系统调用(systemcall)的访问限制,能够在应用程序和内核之间提供更好的隔离,但是它们要求用户创建预定义的系统调用白名单。在实际中,很难事先罗列出应用程序所需的所有系统调用。如果你需要调用的系统调用存在漏洞,那么这类过滤器也很难发挥作用。因此,容器被认为不具备和虚拟机以及沙盒(sanbox)一样的隔离能力。关于容器、虚拟机和沙盒之间的区别。

697113-20181229090019900-2131344707.png

将多租户隔离模式分为两大类:

  • 弱隔离(Soft multi-tenancy):同一个组织中的多个用户使用同一个集群。这种隔离模式中,因为用户处于同一个组织中,因此互相之间默认是信任关系,但是也存在可能的情况,比如有恶意的员工。这种隔离模式的主要目的就是为了防止这种恶意事件。

  • 强隔离(Hard multi-tenancy):来自不同组织的多个用户使用同一个集群。这种隔离模式中,默认就假定所有用户都是潜在恶意的,因此这种模式的主要目的是阻止租户之间的互相访问。

从上面的定义可以看出,基本上,私有云的隔离模式是弱隔离模式,而公有云的隔离模式是强隔离模式。

因为容器天生隔离不足,如果只是采用传统 Linux 容器的话,公有云往往采用每个用户单独创建 Kubernetes 集群的方式来实现强隔离:

697113-20181229091739903-703033712.png

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。