mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-27 15:57:09 +00:00
Add POC documentation of Kata working with OpenStack Zun
Signed-off-by: Eric Adams <eric.adams@intel.com>
This commit is contained in:
parent
c7523884f1
commit
ef9e72319f
BIN
kata-zun1.png
Normal file
BIN
kata-zun1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 113 KiB |
BIN
kata-zun2.png
Normal file
BIN
kata-zun2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
BIN
kata-zun3.png
Normal file
BIN
kata-zun3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
kata-zun4.png
Normal file
BIN
kata-zun4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 250 KiB |
BIN
kata-zun5.png
Normal file
BIN
kata-zun5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 77 KiB |
126
zun_kata.md
Normal file
126
zun_kata.md
Normal file
@ -0,0 +1,126 @@
|
||||
# OpenStack Zun DevStack working with Kata Containers
|
||||
## Introduction
|
||||
|
||||
This guide describes how to get Kata Containers to work with OpenStack Zun
|
||||
using DevStack on Ubuntu 16.04. Running DevStack with this guide will setup
|
||||
Docker and Clear Containers 2.0, which you replace with Kata Containers.
|
||||
Currently, the instructions are based on the following links:
|
||||
|
||||
- https://docs.openstack.org/zun/latest/contributor/quickstart.html
|
||||
|
||||
- https://docs.openstack.org/zun/latest/admin/clear-containers.html
|
||||
|
||||
- https://github.com/kata-containers/documentation/blob/master/install/ubuntu-installation-guide.md
|
||||
|
||||
|
||||
## Install Git to use with DevStack
|
||||
|
||||
```
|
||||
sudo apt install git
|
||||
```
|
||||
|
||||
## Setup OpenStack DevStack
|
||||
The following commands will sync DevStack from GitHub, create your
|
||||
`local.conf` file, assign your host IP to this file, enable Clear
|
||||
Containers, start DevStack, and set the environment variables to use
|
||||
`zun` on the command line.
|
||||
```
|
||||
sudo mkdir -p /opt/stack
|
||||
sudo chown $USER /opt/stack
|
||||
git clone https://git.openstack.org/openstack-dev/devstack /opt/stack/devstack
|
||||
HOST_IP="$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')"
|
||||
git clone https://git.openstack.org/openstack/zun /opt/stack/zun
|
||||
cat /opt/stack/zun/devstack/local.conf.sample \
|
||||
| sed "s/HOST_IP=.*/HOST_IP=$HOST_IP/" \
|
||||
> /opt/stack/devstack/local.conf
|
||||
sed -i "s/KURYR_CAPABILITY_SCOPE=.*/KURYR_CAPABILITY_SCOPE=local/" /opt/stack/devstack/local.conf
|
||||
echo "ENABLE_CLEAR_CONTAINER=true" >> /opt/stack/devstack/local.conf
|
||||
/opt/stack/devstack/stack.sh
|
||||
source /opt/stack/devstack/openrc admin admin
|
||||
```
|
||||
|
||||
The previous commands start OpenStack DevStack with Zun support. You can test
|
||||
it using `runc` as shown by the following commands to make sure everything
|
||||
installed correctly and is working.
|
||||
|
||||
```
|
||||
zun run --name test cirros ping -c 4 8.8.8.8
|
||||
zun list
|
||||
zun logs test
|
||||
zun delete test
|
||||
```
|
||||
|
||||
## Install `kata-runtime`, `kata-shim`, and `kata-proxy`
|
||||
|
||||
```
|
||||
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 https://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
|
||||
```
|
||||
|
||||
## Update Docker with new Kata Containers runtime
|
||||
|
||||
The following commands replace the Clear Containers 2.x runtime setup with
|
||||
DevStack, with Kata Containers:
|
||||
|
||||
```
|
||||
sudo sed -i 's/"cor"/"kata-runtime"/' /etc/docker/daemon.json
|
||||
sudo sed -i 's/"\/usr\/bin\/cc-oci-runtime"/"\/usr\/bin\/kata-runtime"/' /etc/docker/daemon.json
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
## Test that everything works in both Docker and OpenStack Zun
|
||||
|
||||
```
|
||||
sudo docker run -ti --runtime kata-runtime busybox sh
|
||||
zun run --name kata --runtime kata-runtime cirros ping -c 4 8.8.8.8
|
||||
zun list
|
||||
zun logs kata
|
||||
|
||||
zun delete kata
|
||||
```
|
||||
|
||||
## Stop DevStack and clean up system (Optional)
|
||||
|
||||
```
|
||||
/opt/stack/devstack/unstack.sh
|
||||
/opt/stack/devstack/clean.sh
|
||||
```
|
||||
|
||||
## Restart DevStack and reset CC 2.x runtime to `kata-runtime`
|
||||
|
||||
Run the following commands if you already setup Kata Containers and want to
|
||||
restart DevStack:
|
||||
|
||||
```
|
||||
/opt/stack/devstack/unstack.sh
|
||||
/opt/stack/devstack/clean.sh
|
||||
/opt/stack/devstack/stack.sh
|
||||
source /opt/stack/devstack/openrc admin admin
|
||||
sudo sed -i 's/"cor"/"kata-runtime"/' /etc/docker/daemon.json
|
||||
sudo sed -i 's/"\/usr\/bin\/cc-oci-runtime"/"\/usr\/bin\/kata-runtime"/' /etc/docker/daemon.json
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||

|
||||
|
||||
Figure 1: Create a busybox container image
|
||||
|
||||

|
||||
|
||||
Figure 2: Select `kata-runtime` to use
|
||||
|
||||

|
||||
|
||||
Figure 3: Two busybox containers successfully launched
|
||||
|
||||

|
||||
|
||||
Figure 4: Test connectivity between Kata Containers
|
||||
|
||||

|
||||
|
||||
Figure 5: CLI for Zun
|
Loading…
Reference in New Issue
Block a user