diff options
Diffstat (limited to 'docs/usecases/contiv/SINGLE_NIC_SETUP.md')
-rw-r--r-- | docs/usecases/contiv/SINGLE_NIC_SETUP.md | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/docs/usecases/contiv/SINGLE_NIC_SETUP.md b/docs/usecases/contiv/SINGLE_NIC_SETUP.md new file mode 100644 index 00000000000..875a7323fff --- /dev/null +++ b/docs/usecases/contiv/SINGLE_NIC_SETUP.md @@ -0,0 +1,111 @@ +### 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](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. + +[1]: ../k8s/contiv-vpp.yaml |