UniKUnikernel 編譯和部署平臺
UniK (發(fā)音 you-neek) 是一款可將應(yīng)用程序源編譯成 unikernels (輕量級的可啟動磁盤鏡像),而不是編譯成二進(jìn)制文件的工具。
UniK 利用一個簡單的 docker-like 命令行接口,使得構(gòu)建 unikernels 像構(gòu)建 containers 一樣容易。
UniK 是為了易于擴(kuò)展而構(gòu)建的,允許(且鼓勵)為 unikernel 編譯器和云計(jì)算提供器添加支持。
安裝條件:
-
已安裝的 Docker 和至少 8GB 的可用空間用于構(gòu)建鏡像的運(yùn)行
-
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 執(zhí)行,通過 ./_build/unik 運(yùn)行 UniK 命令,或?qū)⒍M(jìn)制移動到你路徑的某個地方,例如 /usr/local/bin 用于隨處使用 unik [command] 運(yùn)行命令。
從源代碼構(gòu)建 Containers
默認(rèn)情況下,make 會從 Docker Hub 獲取所有必要的 container 鏡像,如果你想從源代碼構(gòu)建 Containers,你將需要:
-
Golang v1.5 或更高版本
-
$GOPATH 應(yīng)設(shè)置且 $GOPATH/bin 應(yīng)成你的 $PATH(見 https://golang.org/doc/code.html#GOPATH)
-
Apache Maven 確認(rèn) mvn 和 go 已安裝以及你的 $GOPATH 已正確設(shè)置,然后只需:
$ 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
