Directions below are executed on a Ubuntu 18.04 on an Azure VM (standard D2s v3 node)
Install latest stable 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
Sudoless access for docker to save your fingers:
sudo usermod -aG docker $USER
#either reboot/relogin, or:
newgrp docker
Install Kata:
sudo apt-get update
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
Setup Kata as an optional runtime for Docker:
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"runtimes": {
"kata-runtime": {
"path": "/usr/bin/kata-runtime"
}
}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Configure kata to use hugepages:
sudo sed -i -e 's/^# *\(enable_hugepages\).*=.*$/\1 = true/g' /usr/share/defaults/kata-containers/configuration.toml
Create some hugepages on our host machine to facilitate running a container backed by hugepages:
echo 2048 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
#Yeah, below is messed up AF. Checkout the script and do what you want, but be wary:
curl -s https://packagecloud.io/install/repositories/fdio/release/script.deb.sh | sudo bash
sudo apt-get install vpp-lib=18.07-release
sudo snap install go --classic
sudo apt-get install -y gcc
go get -u github.com/clearcontainers/vpp
cd $HOME/go/src/github.com/clearcontainers/vpp
sudo mkdir -p /etc/docker/plugins
sudo cp vpp.json /etc/docker/plugins/
sudo ./vpp &
- Create a network
$ sudo docker network create -d=vpp --ipam-driver=vpp --subnet=192.168.1.0/24 --gateway=192.168.1.1 vpp_net
$ docker network ls | grep vpp
8fc6b0d88525 vpp_net vpp local
- Try to run a container
docker run --runtime=kata-runtime --memory=256M --net=vpp_net --ip=192.168.1.3 -it alpine sh
quick dev environment:
start vi and run
: GoInstallBinaries