UniKUnikernel 编译和部署平台
UniK (发音 you-neek) 是一款可将应用程序源编译成 unikernels (轻量级的可启动磁盘镜像),而不是编译成二进制文件的工具。
UniK 利用一个简单的 docker-like 命令行接口,使得构建 unikernels 像构建 containers 一样容易。
UniK 是为了易于扩展而构建的,允许(且鼓励)为 unikernel 编译器和云计算提供器添加支持。
安装条件:
-
已安装的 Docker 和至少 8GB 的可用空间用于构建镜像的运行
-
Virtualbox (如果使用 virtualbox 提供器)
安装:
$ git clone https://github.com/emc-advanced-dev/unik.git $ cd unik $ make $ _build/unik Unik is a tool for compiling application source code into bootable disk images. Unik also runs and manages unikernel instances across infrastructures. ...
这将把 unik 放置到 unik/_build/unik 执行,通过 ./_build/unik 运行 UniK 命令,或将二进制移动到你路径的某个地方,例如 /usr/local/bin 用于随处使用 unik [command] 运行命令。
从源代码构建 Containers
默认情况下,make 会从 Docker Hub 获取所有必要的 container 镜像,如果你想从源代码构建 Containers,你将需要:
-
Golang v1.5 或更高版本
-
$GOPATH 应设置且 $GOPATH/bin 应成你的 $PATH(见 https://golang.org/doc/code.html#GOPATH)
-
Apache Maven 确认 mvn 和 go 已安装以及你的 $GOPATH 已正确设置,然后只需:
$ make containers
卸载
unik binary
$ make uninstall
UniK docker containers
$ make remove-containers
支持的 unikernel 类型
rump:UniK 支持将 Python、Node.js 和 Go 代码编译成 rumprun unikernels
OSv:UniK 支持将 Java 代码编译成 OSv unikernels
IncludeOS:UniK 支持将 C++ 代码 编译成 IncludeOS unikernels