コンテナの軽量さと仮想マシンの堅牢さを兼ね備えているらしい。
https://www.publickey1.jp/blog/17/kata_containersopenstack_foundation.html
公式サイト
https://katacontainers.io/
ubuntuにインストールする方法。
https://github.com/kata-containers/documentation/blob/master/install/ubuntu-installation-guide.md
基本的に↑の公式githubのコマンドをコピペしていけば良い。以下は全部上記サイトのコピペ。ただ、最後にひとつだけトラブルシューティングあり。
まずkata containersのインストール
$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_$(lsb_release -rs)/ /' > /etc/apt/sources.list.d/kata-containers.list"
$ curl -sL http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_$(lsb_release -rs)/Release.key | sudo apt-key add -
$ sudo -E apt-get update
$ sudo -E apt-get -y install kata-runtime kata-proxy kata-shim
つぎはDockerを使うかKubernetesを使うかで変わる。私はDockerを使うので、
https://github.com/kata-containers/documentation/blob/master/install/docker/ubuntu-docker-install.md
のインストラクションに従い、以下のようにDockerをインストール(まだインストールしてない場合)。
$ sudo -E apt-get -y install apt-transport-https ca-certificates software-properties-common
$ curl -sL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ arch=$(dpkg --print-architecture)
$ sudo -E add-apt-repository "deb [arch=${arch}] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo -E apt-get update
$ sudo -E apt-get -y install docker-ce
その後、/etc/docker/daemon.json
を作成し、以下を書く。
{
"default-runtime": "kata-runtime",
"runtimes": {
"kata-runtime": {
"path": "/usr/bin/kata-runtime"
}
}
}
そして、
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
で、
$ sudo docker run busybox uname -a
しかし、以下のエラーが出た。
docker: Error response from daemon: OCI runtime create failed: Could not access KVM kernel module: No such file or directory
qemu-lite-system-x86_64: failed to initialize KVM: No such file or directory: unknown.
ERRO[0001] error waiting for container: context canceled
調べてみると、VT-xというのが無効になっているらしい。これは、Intel virtualization technologyというもので、BIOSの設定で有効化する必要がある。
私の場合は、以下のサイトのとおりにした。
http://d.hatena.ne.jp/iww/20171222/intel_vt
で、再度先程のコマンドを実行すると成功した。
$ sudo docker run busybox uname -a
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
8c5a7da1afbc: Pull complete
Digest: sha256:cb63aa0641a885f54de20f61d152187419e8f6b159ed11a251a09d115fdff9bd
Status: Downloaded newer image for busybox:latest
Linux 01190d59ba0b 4.14.51-134.container #1 SMP Wed Aug 15 16:27:33 UTC 2018 x86_64 GNU/Linux