docs: Updated "VPP with Containers" use-case section

Type: improvement

Modified "VPP with Containers" doc section to run on Ubuntu 22.04 LTS.

Change-Id: Ic09b88cf0e3b492711222a1bb24552de964a7d03
Signed-off-by: hsandid <halsandi@cisco.com>
This commit is contained in:
hsandid
2023-10-30 18:47:36 +01:00
committed by Dave Wallace
parent e908fe7e47
commit e75176a257
4 changed files with 26 additions and 29 deletions

View File

@ -63,11 +63,9 @@ Run some commands to verify the changes:
32: veth_link1 inet 172.16.1.2/24 scope global veth_link1\ valid_lft forever preferred_lft forever 32: veth_link1 inet 172.16.1.2/24 scope global veth_link1\ valid_lft forever preferred_lft forever
32: veth_link1 inet6 fe80::2c9d:83ff:fe33:37e/64 scope link \ valid_lft forever preferred_lft forever 32: veth_link1 inet6 fe80::2c9d:83ff:fe33:37e/64 scope link \ valid_lft forever preferred_lft forever
root@cone:/# route root@cone:/# ip route
Kernel IP routing table default via 172.16.1.1 dev veth_link1
Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.1.0/24 dev veth_link1 proto kernel scope link src 172.16.1.2
default 172.16.1.1 0.0.0.0 UG 0 0 0 veth_link1
172.16.1.0 * 255.255.255.0 U 0 0 0 veth_link1
We see that the IP has been assigned, as well as our default gateway. We see that the IP has been assigned, as well as our default gateway.

View File

@ -19,7 +19,7 @@ Then install packages for containers such as lxc:
# apt-get install bridge-utils lxc # apt-get install bridge-utils lxc
As quoted from the `lxc.conf manpage <https://linuxcontainers.org/it/lxc/manpages/man5/lxc.conf.5.html>`_, "container configuration is held in the config stored in the container's directory. As quoted from the `lxc.conf manpage <https://linuxcontainers.org/lxc/manpages/man5/lxc.conf.5.html>`_, "container configuration is held in the config stored in the container's directory.
A basic configuration is generated at container creation time with the default's recommended for the chosen template as well as extra default keys coming from the default.conf file." A basic configuration is generated at container creation time with the default's recommended for the chosen template as well as extra default keys coming from the default.conf file."
"That *default.conf* file is either located at /etc/lxc/default.conf or for unprivileged containers at ~/.config/lxc/default.conf." "That *default.conf* file is either located at /etc/lxc/default.conf or for unprivileged containers at ~/.config/lxc/default.conf."
@ -31,10 +31,10 @@ Look at the contents of *default.conf*, which should initially look like this:
.. code-block:: console .. code-block:: console
# cat /etc/lxc/default.conf # cat /etc/lxc/default.conf
lxc.network.type = veth lxc.net.0.type = veth
lxc.network.link = lxcbr0 lxc.net.0.link = lxcbr0
lxc.network.flags = up lxc.net.0.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx
As you can see, by default there is one veth interface. As you can see, by default there is one veth interface.
@ -44,36 +44,36 @@ You can do this by piping *echo* output into *tee*, where each line is separated
.. code-block:: console .. code-block:: console
# echo -e "lxc.network.name = veth0\nlxc.network.type = veth\nlxc.network.name = veth_link1" | sudo tee -a /etc/lxc/default.conf # echo -e "lxc.net.0.name = veth0\nlxc.net.1.type = veth\nlxc.net.1.name = veth_link1" | sudo tee -a /etc/lxc/default.conf
Inspect the contents again to verify the file was indeed modified: Inspect the contents again to verify the file was indeed modified:
.. code-block:: console .. code-block:: console
# cat /etc/lxc/default.conf # cat /etc/lxc/default.conf
lxc.network.type = veth lxc.net.0.type = veth
lxc.network.link = lxcbr0 lxc.net.0.link = lxcbr0
lxc.network.flags = up lxc.net.0.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx
lxc.network.name = veth0 lxc.net.0.name = veth0
lxc.network.type = veth lxc.net.1.type = veth
lxc.network.name = veth_link1 lxc.net.1.name = veth_link
After this, we're ready to create the containers. After this, we're ready to create the containers.
Creates an Ubuntu Xenial container named "cone". Creates an Ubuntu Focal container named "cone".
.. code-block:: console .. code-block:: console
# lxc-create -t download -n cone -- --dist ubuntu --release xenial --arch amd64 --keyserver hkp://p80.pool.sks-keyservers.net:80 # lxc-create -t download -n cone -- --dist ubuntu --release focal --arch amd64
If successful, you'll get an output similar to this: If successful, you'll get an output similar to this:
.. code-block:: console .. code-block:: console
You just created an Ubuntu xenial amd64 (20180625_07:42) container. You just created an Ubuntu focal amd64 (20231027_07:42) container.
To enable SSH, run: apt install openssh-server To enable SSH, run: apt install openssh-server
No default root or user password are set by LXC. No default root or user password are set by LXC.
@ -83,8 +83,7 @@ Make another container "ctwo".
.. code-block:: console .. code-block:: console
# lxc-create -t download -n ctwo -- --dist ubuntu --release xenial --arch amd64 --keyserver hkp://p80.pool.sks-keyservers.net:80 # lxc-create -t download -n ctwo -- --dist ubuntu --release focal --arch amd64
List your containers to verify they exist: List your containers to verify they exist:
@ -106,9 +105,9 @@ And verify its running:
.. code-block:: console .. code-block:: console
# lxc-ls --fancy # lxc-ls --fancy
NAME STATE AUTOSTART GROUPS IPV4 IPV6 NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED
cone RUNNING 0 - - - cone RUNNING 0 - - - false
ctwo STOPPED 0 - - - ctwo STOPPED 0 - - - false
.. note:: .. note::

View File

@ -18,10 +18,9 @@ Run the linux DHCP setup and install VPP:
.. code-block:: console .. code-block:: console
root@cone:/# resolvconf -d eth0
root@cone:/# dhclient root@cone:/# dhclient
root@cone:/# apt-get install -y wget root@cone:/# apt-get install -y curl
root@cone:/# echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io.ubuntu.xenial.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list root@cone:/# curl -s https://packagecloud.io/install/repositories/fdio/release/script.deb.sh | sudo bash
root@cone:/# apt-get update root@cone:/# apt-get update
root@cone:/# apt-get install -y --force-yes vpp root@cone:/# apt-get install -y --force-yes vpp
root@cone:/# sh -c 'echo \"\\ndpdk {\\n no-pci\\n}\" >> /etc/vpp/startup.conf' root@cone:/# sh -c 'echo \"\\ndpdk {\\n no-pci\\n}\" >> /etc/vpp/startup.conf'

View File

@ -5,6 +5,7 @@ VPP with Containers
This section will cover connecting two Linux containers with VPP. A container is essentially a more efficient and faster VM, due to the fact that a container does not simulate a separate kernel and hardware. You can read more about `Linux containers here <https://linuxcontainers.org/>`_. This section will cover connecting two Linux containers with VPP. A container is essentially a more efficient and faster VM, due to the fact that a container does not simulate a separate kernel and hardware. You can read more about `Linux containers here <https://linuxcontainers.org/>`_.
This section has been tested with Ubuntu 22.04 LTS.
.. toctree:: .. toctree::