General Networking

The section outlines and describes several plugins available for Luigi like Node Feature Discovery and Host Configuration templates.

  • HostPlumber

    • A subset of Luigi, an operator to configure/prep networking on the node and retrieve node details.The Hostplumber operator specifies two new CRD types called HostNetworkTemplate and HostNetwork. These are used to configure the host’s networking and view node networking state.

  • Multus

    • Almost always required - the only way K8S can support multiple CNIs and networks

    • Perquisite for OVS

  • SR-IOV CNI

    • This plugin enables the configuration and usage of SR-IOV VF networks in Kubernetes

  • SRIOV Network Device Plugin

    • The SR-IOV Network Device Plugin is Kubernetes device plugin for discovering and advertising networking resources in the form of SR-IOV virtual functions (VFs) and PCI physical functions (PFs) available on a Kubernetes host.OpenVSwitch daemon & CLI tools

  • OVS CNI plugin

    • Allows user to define Kubernetes networks on top of Open vSwitch bridges available on nodes.Macvlan, IPvlan

    • Requires Multus to be installed on hosts.

  • Whereabouts IPAM driver

    • Required for dynamic IP assignment without an external DHCP service.

  • Node Feature Discovery

    • A component of the Luigi operator that discovers features like SRIOV enablement, kernel version, swap, RAM, CPU, disks and other info at the host level. It creates labels on the nodes with those key-values on each node on the cluster.

Configuration

namespace: Each plugin will take in a namespace override to deploy, default namespace otherwise

Image override: Each plugin will take an image override field to use a non-default/stable container image. This is not guaranteed to work, especially if the plugin's CRs have changed. It should only be used for dev-test or bug fixes

imagePullPolicy: By default IfNotPresent

privateRegistryBase: Some airgapped env's may have a custom container registry. If this is specified, it will replace the public container registry URL (docker.io, gcr.io, quay, etc..) with this path

Each plugin may or may not have some further specific configuration. Here are the current options as of release v0.3:

  • HostPlumber - none

  • Multus - none

  • SRIOV - none

  • Node-feature-discovery - none

  • OVS - none

  • Whereabouts

    • ipReconcilerSchedule - specify the CronJob schedule of the whereabouts IP cleanup Job

    • ipReconcilerNodeSelector - specify the nodeSelector Labels on which to schedule the ip-reconciler

NetworkPlugin CRD

In it's current phase, only one instance of the CRD is supported. It will reflect the final, desired state of all plugins to be deployed.

If it is present, Luigi will ensure that the plugin is deployed and upgraded. If missing and re-applied, Luigi will remove the plugin if it was previously managing it.

The above will deploy all the plugins specified in the default namespace. To override the namespace, and deploy in kube-system:

This will create a secondaryCNId and other related plugins deployed. Use the HostPlumber plugin, to prep the nodes before creating Multus networks and assigning them to pods

Last updated

Was this helpful?