diff options
Diffstat (limited to 'docs/usecases/contiv/SINGLE_NIC_SETUP.rst')
-rw-r--r-- | docs/usecases/contiv/SINGLE_NIC_SETUP.rst | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/docs/usecases/contiv/SINGLE_NIC_SETUP.rst b/docs/usecases/contiv/SINGLE_NIC_SETUP.rst new file mode 100644 index 00000000000..43d4c3f5491 --- /dev/null +++ b/docs/usecases/contiv/SINGLE_NIC_SETUP.rst @@ -0,0 +1,140 @@ +Setting up a Node with a Single NIC +=================================== + +Installing the STN Daemon +------------------------- + +The STN (Steal the NIC) daemon must be installed on every node in the +cluster that has only one NIC. The STN daemon installation(*) should be +performed before deployment of the Contiv-VPP plugin. + +\* Docker daemon must be present when installing STN. Also, Docker must +be configured to allow shared mount. On CentOS, this may not be the case +by default. You can enable it by following the instructions at +https://docs.portworx.com/knowledgebase/shared-mount-propagation.html. + +Run as root (not using sudo): + +:: + + bash <(curl -s https://raw.githubusercontent.com/contiv/vpp/master/k8s/stn-install.sh) + +The install script should output the following: + +:: + + Installing Contiv STN daemon. + Starting contiv-stn Docker container: + 550334308f85f05b2690f5cfb5dd945bd9c501ab9d074231f15c14d7098ef212 + +Check that the STN daemon is running: + +:: + + docker ps -a + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 550334308f85 contivvpp/stn "/stn" 33 seconds ago Up 33 seconds contiv-stn + +Check that the STN daemon is operational: + +:: + + docker logs contiv-stn + +The expected logs would look like the following excerpt: + +:: + + 2018/02/23 10:08:34 Starting the STN GRPC server at port 50051 + +For more details, please read the Go documentation for +`contiv-stn <https://github.com/contiv/vpp/blob/master/cmd/contiv-stn/doc.go>`__ +and +`contiv-init <https://github.com/contiv/vpp/blob/master/cmd/contiv-init/doc.go>`__. + +Creating a VPP Interface Configuration +-------------------------------------- + +Create the VPP configuration for the hardware interface as described +`here <https://github.com/contiv/vpp/blob/master/docs/VPP_CONFIG.md#single-nic-configuration>`__. + +Configuring STN in Contiv-VPP K8s Deployment Files +-------------------------------------------------- + +The STN feature is disabled by default. It needs to be enabled either +globally, or individually for every node in the cluster. + +Global Configuration: +~~~~~~~~~~~~~~~~~~~~~ + +Global configuration is used in homogeneous environments where all nodes +in a given cluster have the same hardware configuration, for example +only a single Network Adapter. To enable the STN feature globally, put +the ``StealFirstNIC: True`` stanza into the [``contiv-vpp.yaml``][1] +deployment file, for example: + +:: + + data: + contiv.yaml: |- + TCPstackDisabled: true + ... + StealFirstNIC: True + ... + IPAMConfig: + +Setting ``StealFirstNIC`` to ``True`` will tell the STN Daemon on every +node in the cluster to steal the first NIC from the kernel and assign it +to VPP. Note that the Network Adapters on different nodes do not need to +be of the same type. You still need to create the respective vswitch +configurations on every node in the cluster, as shown +[above](#creating-a-vpp-interface-configuration). + +Individual Configuration: +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Individual configuration is used in heterogeneous environments where +each node in a given cluster may be configured differently. To enable +the STN feature for a specific node in the cluster, put the following +stanza into its Node Configuration in the [``contiv-vpp.yaml``][1] +deployment file, for example: + +:: + + ... + NodeConfig: + - NodeName: "ubuntu-1" + StealInterface: "enp0s8" + - NodeName: "ubuntu-2" + StealInterface: "enp0s8" + ... + +Note that you still have to create the vswitch configuration on the node +as shown `here <#creating-a-vpp-interface-configuration>`__. + +Uninstalling the STN Daemon +--------------------------- + +Run as root (not using sudo): + +:: + + bash <(curl -s https://raw.githubusercontent.com/contiv/vpp/master/k8s/stn-install.sh) --uninstall + +The install script should output the following: + +:: + + Uninstalling Contiv STN daemon. + Stopping contiv-stn Docker container: + contiv-stn + contiv-stn + contiv-stn + +Make sure that the STN daemon has been uninstalled: + +:: + + docker ps -q -f name=contiv-stn + +No containers should be listed. |