Kata DaoCloud Enterprise

1 Kata 简介

daocloud_kata

  Kata Container 是两个现有的开源项目合并:Intel Clear Containers 和 Hyper runV。

  Intel Clear Container 项目的目标是通过英特尔®虚拟化技术(VT)解决容器内部的安全问题,并且能够将容器作为轻量级虚拟机(VM)启动,提供了一个可选的运行时间,专注于性能(<100ms启动时间),可与 Kubernetes 和 Docker 等常用容器环境互操作。英特尔®Clear Container 表明,安全性和性能不必是一个折衷,将硬件隔离的安全性与容器的性能可以兼得。Hyper runV 优先于技术无关支持许多不同的CPU架构和管理程序。

  Kata Containers 是一个开源社区,致力于使用轻量级虚拟机构建安全的容器运行时,这些虚拟机的感觉和性能类似于容器,但使用硬件虚拟化技术作为第二层防御提供更强的工作负载隔离。 自 2017 年 12 月推出以来,该社区成功地将 Intel Clear Containers 的最佳部分与 Hyper.sh RunV 合并,并扩展到除 x86_64 外还支持 AMD64、ARM、IBM p-series 和 IBM z-series。Kata Containers 还支持多个管理程序,包括 QEMU、Cloud-Hypervisor 和 Firecracker,并与 containerd 项目等集成。Kata Containers 社区由开放基础设施基金会管理,该基金会支持全球开放基础设施的开发和采用。 该代码在 Apache 2 许可下托管在 GitHub。

  DaoCloud 以自身容器产品 DCE 为基础,结合 Kata 的原生特性,强化了自身的产品能力,具体特性如下:

  • 安全: 在专用内核中运行,提供网络、I/O 和内存的隔离,并可以利用虚拟化 VT 扩展的硬件强制隔离。
  • 兼容性: 支持行业标准,包括 OCI 容器格式,Kubernetes CRI 接口,以及遗留虚拟化技术。
  • 性能: 作为标准的 Linux 容器提供一致的性能; 增加了隔离,而没有标准虚拟机的性能负担。
  • 简单: 消除了在虚拟机中嵌套使用容器的需求。

2 怎么做的

kata_containers

  Kata Containers 并没有取代现有的容器解决方案(当然其目标是做到这一点),而是关于解决容器安全的问题。容器飞速发展的理由很充分——它们轻便,性能卓越,易于集成。问题在于,传统的容器架构涉及主机操作系统和访客容器之间的共享内核,如果一个容器出了问题,集群中的其他容器工作负载就会容易受到攻击。这个问题是 Kata Containers 背后的重要推动力之一。

  在 Kata Containers 中,每个容器都有自己的轻量级虚拟机和小内核,通过硬件虚拟化提供容器隔离。这加强了安全层,并且还提供了容器即服务和软件即服务模式的可能性,因为互相不信任的租户可以放在同一个集群上。

3 安装

  1. 启用 CPU 虚拟化的功能,详见下边的链接:
    https://github.com/kata-containers/kata-containers/tree/main/docs/install
  2. 安装 Kata 和 Containerd,详见如下链接:
    https://github.com/kata-containers/kata-containers/blob/main/utils/README.md
  3. 安装 DaoCloud 容器平台 DCE,详见 DCE 安装部署手册。

4 如何使用

  需要提前定义 RuntimeClass

apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: kata
handler: kata

  在 DCE 平台中,部署应用时,只需要给 Pod 加上 pod.spec.runtimeClassName = kata, 就可以指定使用哪个运行时。