141 lines
4.1 KiB
ReStructuredText
141 lines
4.1 KiB
ReStructuredText
|
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.
|