Installation¶
This section describe how to install and configure 6WIND HNA to implement the EVPN BGP scenario..
Prerequisites¶
The scenario described in this document relies on the following platform:
two Virtual Service Router taking the role of leaf routers in the network fabric, tested version is 3.10, running in a VM.
two Kubernetes nodes able to run Virtual Service Router: in this document, they run Kubernetes version 1.31 on Ubuntu 22.04 in a VM.
Overview of the HNA EVPN Network Platform.¶
The Kubernetes nodes are connected to a management network, and to the two leaf routers for dataplane traffic.
The following Kubernetes plugins are installed on all nodes of the Kubernetes cluster:
Flannel as primary CNI.
Tested version is 1.1.0.
Multus, to support a secondary CNI.
Tested version is 3.9.2.
Host Device from containernetworking-plugins, to pass emulated NICs to pods inside the VM.
Tested version is 1.1.1.
sriov-cni, to configure SR-IOV VF networks in container.
Tested version is 2.6.3.
sriov-device-plugin, to advertise and use SR-IOV VF devices in container.
Tested version is 3.5.1.
See also
Refer to the Installation for the container of the Virtual Service Router Getting Started Guide for details about Kubernetes installation.
In the cluster described in this document, node1
also has the role of
control plane node.
HNA nc-k8s-plugin installation¶
The nc-k8s-plugin
relies on two components:
hna-cni
: a CNI binary, started by the container runtime at Pod start. It is in charge of creating the interfaces inside the Pod, and the custom resources used to notify the operator.hna-operator
: a Kubernetes operator, packaged as a docker image and running as a DaemonSet (i.e. on all nodes of the cluster). The operator monitors Kubernetes resources (Pod, ConfigMap, …) and configures the HNA that runs as a Pod.
See also
For detailed instructions, please refer to the nc-k8s-plugin documentation.
Apply the
NetworkAttachment
custom resources for Multus:
root@node1:~# kubectl apply -f https://USER:PASSWORD@download.6wind.com/products/nc-k8s-plugin/hna/3.10/3.10.3/src/manifest/multus-network-attachments.yaml
Deploy the operator with the following command:
root@node1:~# kubectl apply -f https://USER:PASSWORD@download.6wind.com/products/nc-k8s-plugin/hna/3.10/3.10.3/src/manifest/hna-operator.yaml
Once applied, an HNA operator should run on each node of the cluster:
root@node1:~# kubectl get pod -n hna-operator
NAME READY STATUS RESTARTS AGE
hna-operator-5db77 1/1 Running 0 10m
hna-operator-jpdkt 1/1 Running 0 10m