Skip to content
Snippets Groups Projects
README.md 2.71 KiB
Newer Older
lewisfelix's avatar
lewisfelix committed
# L2S-M Installation Guide
ivanvfer's avatar
ivanvfer committed
This guide details the necessary steps to install the L2S-M Kubernetes operator to create and manage virtual networks in your Kubernetes cluster.
lewisfelix's avatar
lewisfelix committed


# Prerequisites

CarlotaGalocha's avatar
CarlotaGalocha committed
1. Clone the L2S-M repository in your host. This guide will assume that all commands are executed within the L2S-M directory.
lewisfelix's avatar
lewisfelix committed

2. Install the Multus CNI Plugin in your K8s cluster. For more information on how to install Multus in your cluster, check their [official GitHub repository](https://github.com/k8snetworkplumbingwg/multus-cni).
lewisfelix's avatar
lewisfelix committed

3. The host-device CNI plugin must be able to be used in your cluster. If it is not present in your K8s distribution, you can find how to install it in your K8s cluster in their [official GitHub repository](https://github.com/containernetworking/plugins).
lewisfelix's avatar
lewisfelix committed

4. Your K8s Control-Plane node must be able to deploy K8s pods for the operator to work. Remove its master and control-plane taints using the following command:
lewisfelix's avatar
lewisfelix committed
```bash
kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master-
```

 
## Install L2S-M

Installing L2S-M can be done by using a single command:
kubectl create -f ./deployments/l2sm-deployment.yaml
lewisfelix's avatar
lewisfelix committed
```

The installation will take around a minute to finish, and to check that everyting is running properly, you may run the following command:
lewisfelix's avatar
lewisfelix committed
```bash
Which should give you an output like this:
NAME                               READY   STATUS    RESTARTS   AGE    IP           NODE    NOMINATED NODE   READINESS GATES
l2sm-controller-56b45487b7-nglns   1/1     Running   0          129m   10.1.72.72   l2sm2   <none>           <none>
l2sm-operator-7794c5f66d-b9nsf     2/2     Running   0          119m   10.1.14.45   l2sm1   <none>           <none>
l2sm-switch-49qpq                  1/1     Running   0          129m   10.1.14.63   l2sm1   <none>           <none>
l2sm-switch-2g696                  1/1     Running   0          129m   10.1.72.73   l2sm2   <none>           <none>
With the components: _l2sm-controller_, _l2sm-operator_ and one _l2sm-switch_ for **each** node in the cluster.
Each Node enables the creation of custom L2S-M networks, as can be seen in the [examples section](../../examples/) section. But for communicating pods that are in different Nodes of the cluster, additional configuration must be done, the VxLAN tunnels between them.
You can proceed to configure Vxlans by following the steps outlined in [the vxlan configuration guide.](../deployment/vxlans.md)
lewisfelix's avatar
lewisfelix committed

Alex's avatar
Alex committed
You are all set! If you want to learn how to create virtual networks and use them in your applications, [check the following section of the repository](https://github.com/Networks-it-uc3m/L2S-M/tree/release-2.0/examples/)