cd $Home/go/src/github.com/hyperhq
git clone --branch v1.0.0 https://github.com/hyperhq/hyperstart.git
cd hyperstart
./autogen.sh
./configure
sudo make
runV(现在是 katacontainers)提供了一种通用方法,它可以提供仍基于 OCI 兼容映像的隔离的 linux 内核。事实上,在 runV 提供的 Guest OS 中,运行其上的 linux 内核是非常新且高级的。但是在使用 runV 时,如何在 Guest OS 中运行旧版本的 linux 内核仍然是业界面临的巨大挑战。
场景
使 runV 能够提供运行旧版本 linux 内核(例如 Linux 内核 2.6.32)的 Guest OS 是一个合理的需求。对于整个工业界,有相当多的工作负载是运行在旧版本 Linux 内核上的。如果所有这些工作负载只能在旧内核上运行(通常企业中的运营团队无法承担升级旧版本 Linux 内核的风险,例如将旧 linux 内核升级到 4.12 或 4.14),则此环境中的应用程序将无法利用到容器和 Kubernetes 等尖端技术的优势。实际上,毫无疑问的是,不能提升应用交付速度,这在互联网时代是致命的。
旧内核支持
然而,PouchContainer 提出了一种解决方案,可以在仍然使用 runV 的基础上,容纳必须在旧版本内核上运行的应用程序。尽管为了实现该功能,需要付出的代价是,需要做很多工作来将新内核的功能向后端移植到旧内核中(这部分的技术比较难开源)。以下 demo 演示了如何在 runV 提供的 Guest OS 中运行 linux 内核 2.6.32:在 Guest OS 中创建旧内核。