关于Kata容器的那些事

译文
存储 存储软件
我们开始努力将Oracle Linux云原生环境与Kata容器(Kata Containers)整合起来时,Kata容器对容器的安全边界带来的变化立即给我留下了印象深刻,我只想知道它是如何工作的。

【51CTO.com快译】我们开始努力将Oracle Linux云原生环境与Kata容器(Kata Containers)整合起来时,Kata容器对容器的安全边界带来的变化立即给我留下了印象深刻,我只想知道它是如何工作的。

本文试图简要介绍关于Kata容器的那些事。

深入介绍Kata容器之前,你可能需要了解Linux容器的简要历史。

1.Kata容器是什么?

Kata容器是一个开源项目,社区致力于使用轻量级虚拟机来构建安全的容器运行时环境,这些虚拟机的感觉和性能如同容器,但是使用硬件虚拟化技术作为第二层防御,提供更强大的工作负载隔离。

Kata容器源自英特尔Clear Containers和Hyper RunV项目。Kata容器使用现有的CPU功能(比如英特尔VT-X和AMD-V™),以便多个容器在同一个主机上运行时,将它们更有效地隔离开来。每个容器可以在自己的虚拟机中运行,并有自己的Linux内核。由于虚拟机之间的边界,一个容器应该无法访问另一个容器的内存(虚拟机管理程序+EPT/RVI)。

runc是Linux上的运行时规范参考实现;它生成容器时,使用标准的Linux内核功能,比如AppArmour、capabilities(7)、控制组、seccomp、SELinux和命名空间(7),以控制权限和进出容器的数据流动。Kata容器通过将容器包装在虚拟机中对此进行了扩展。

2.我何时应使用Kata容器?

runc是最常见的容器运行时环境,是Docker™、CRI-O和Kubernetes®的默认系统。Kata 容器为你提供了另一种选择,它为混合使用或多租户环境提供了更强大的隔离。 Kubernetes worker节点能够同时使用runc和Kata容器,因此不需要专用硬件。

为了提高容器内的通信效率并减少资源使用开销,Kata容器在一个虚拟机中执行Kubernetes pod的所有容器。

决定何时使用runc、何时使用Kata容器取决于你自身的安全策略和状况。影响何时需要更高级别的隔离的一些因素包括如下:

  • 映像的来源———受信任vs不受信任。
  • 该映像是内部生成还是从公共注册中心下载?
  • 容器中的内容
  • 带来竞争优势的内部软件
  • 容器处理的数据集(公共vs机密)

在虚拟环境中工作可能会影响性能,因此建议进行针对工作负载的测试,以评估对环境的影响程度(如果有的话)。

3.Kata容器如何工作?

安装Oracle Linux云原生环境的Kubernetes模块时,runc和Kata容器都与CRI-O一同部署,CRI-O为Kubernetes和容器运行时环境之间提供了必要的支持。

Kata容器使用一种经过高度优化、专门调整的Linux内核来引导虚拟机,并结合最小化的用户空间,以支持容器操作,它们共同提供快速初始化机制。

为了创建Kata容器,Kubernetes用户必须先创建一个RuntimeClass对象。之后,Pods或Deployment可以引用RuntimeClass表明要使用的运行时环境。Using Container Runtimes说明文档(https://docs.oracle.com/en/operating-systems/olcne/runtimes/kata-pod-create.html)中附有示例。

Kata容器旨在提供“感觉和性能如同容器的轻量级虚拟机”;你的开发人员无需知道其代码在虚拟机中执行,也无需更改工作流程即可收到成效。

原文标题:Kata Containers: What, When and How,作者:Mark Cram

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:武晓燕 来源: 51CTO
相关推荐

2020-08-11 08:59:20

容器虚拟化技术

2012-05-01 08:06:49

手机

2012-07-13 00:03:08

WEB前端开发WEB开发

2015-09-14 09:28:47

2009-02-19 10:21:00

路由多WAN口

2015-08-13 10:54:46

2021-03-18 16:05:20

SSD存储故障

2012-01-02 19:30:22

iPad

2011-08-22 16:42:43

SqliteiPad

2011-07-19 15:33:57

iPhone

2011-06-30 10:59:43

2022-09-09 08:08:28

开源项目服务

2011-08-01 17:31:25

Xcode开发 Cocoa

2011-07-04 13:51:02

QT 对象 模型

2012-04-05 10:49:40

服务器SSL证书

2021-05-17 08:18:35

Java内存模型JMM

2015-08-19 09:10:37

程序员面试

2021-07-27 10:52:27

iOS WKWebView容器

2012-05-01 21:27:55

图标

2024-03-18 00:00:05

Java服务JVM
点赞
收藏

51CTO技术栈公众号