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.

_images/hna-network-platform.svg

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