Skip to content

Instantly share code, notes, and snippets.

@egernst
Last active August 17, 2018 18:21
Show Gist options
  • Select an option

  • Save egernst/cdc2d646e41747912b00872a533f9a47 to your computer and use it in GitHub Desktop.

Select an option

Save egernst/cdc2d646e41747912b00872a533f9a47 to your computer and use it in GitHub Desktop.
Testing VPP and Kata

Testing VPP with Kata

Directions below are executed on a Ubuntu 18.04 on an Azure VM (standard D2s v3 node)

Install Docker:

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 and Configure Kata Containers:

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

Install VPP

#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

Install and start VPP CNM plugin

 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 &

Test

  1. 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
  1. Try to run a container
docker run --runtime=kata-runtime --memory=256M --net=vpp_net --ip=192.168.1.3  -it alpine sh
@egernst
Copy link
Author

egernst commented Aug 17, 2018

quick dev environment:

sudo apt-get install make gcc
go get github.com/kata-containers/runtime
go get github.com/kata-containers/agent
git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go

start vi and run : GoInstallBinaries

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment