Kata Container 介绍
docker容器,性能高,不安全;VM虚拟机,安全性好,性能损耗大;Kata Container轻量级虚拟机的容器,即安全,性能也高。
开源容器项目Kata Containers,旨在将虚拟机(VM)的安全优势与容器的速度和可管理性统一起来。
Kata Container 是两个现有的开源项目合并:Intel Clear Containers和Hyper runV。
Intel Clear Container项目的目标是通过英特尔®虚拟化技术(VT)解决容器内部的安全问题,并且能够将容器作为轻量级虚拟机(VM)启动,提供了一个可选的运行时间,专注于性能(<100ms启动时间),可与Kubernetes 和Docker 等常用容器环境互操作。英特尔®Clear Container表明,安全性和性能不必是一个折衷,将硬件隔离的安全性与容器的性能可以兼得。
hyper runV优先于技术无关支持许多不同的CPU架构和管理程序。
安全:提供了隔离性以达到安全,两个内核不会对击
使用Docker轻量级的容器时,最大的问题就是会碰到安全性的问题,其中几个不同的容器可以互相的进行攻击,如果把这个内核给攻掉了,其他所有容器都会崩溃。如果使用KVM等虚拟化技术,会完美解决安全性的问题,但是会影响速度。
单单就Docker来说,安全性可以概括为两点:
1. 不会对主机造成影响
2. 不会对其他容器造成影响
所以安全性问题90%以上可以归结为隔离性问题。而Docker的安全问题本质上就是容器技术的安全性问题,这包括共用内核问题以及Namespace还不够完善的限制:
1. /proc、/sys等未完全隔离
2. Top, free, iostat等命令展示的信息未隔离
3. Root用户未隔离
4. /dev设备未隔离
5. 内核模块未隔离
6. SELinux、time、syslog等所有现有Namespace之外的信息都未隔离
当然,镜像本身不安全也会导致安全性问题。
系统架构
Kata Containers is Apache 2 licensed software consisting of six components: Agent, Runtime, Proxy, Shim, Kernel and packaging of QEMU 2.11. It is designed to be architecture agnostic, run on multiple hypervisors and plug seamlessly into the containers ecosystem.
Kata Containers Integration with Kubernetes
docker 默认使用 runC 创建容器,所以可以在kata container可以在docker container外面再包一层VM,实现安全性。
k8s 为pods创建服务的传统方法是采用docker创建容器,由容器提供pods服务,但现在可以通过kata container创建VM,在VM中再创建pods服务,更安全。pods是一个或多个container。
学习资料:https://github.com/kata-containers/documentation
Katacontainers 与 Docker 或者 Kubernetes 进行集成: https://lingxiankong.github.io/2018-07-20-katacontainer-docker-k8s.html
hypervisor指的是一个大概念,硬件虚拟化,包括各种虚拟化方案。虚拟化有哪些分类?