Install xNIC on Kubernetes

Prev Next

WHAT TO EXPECT

For Kubernetes, the xNIC is a lightweight daemonset that must be installed on every node with pods sending or receiving cloudSwXtch traffic. This creates a virtual network interface within the node in a Kubernetes Cluster. Applications that use IP multicast should target this virtual network interface.

In this article, users will learn how to install xNIC on K8s.

Supported Types 

Below is a list of tested K8s Container Network Interface (CNI) on each managed Kubernetes service. The * denotes default.

  • Azure AKS: Kubenet CNI*, Cilium CNI, or Callico CNI

  • AWS EKS: Amazon VPC CNI* and Cilium CNI

  • Google GKE: Traditional CNI*, Callico CNI and Dataplane V2 (Cillium)

  • Oracle OKE: VCN-Native CNI*, Cilium CNI

The following operating systems in a pod are tested for the xNIC on K8s: RHEL 8, RHEL 9, CentOS 8, Ubuntu 20.04, or Ubuntu 22.04.

Installation

The installation process can be split into three steps: 

  1. Create a Kubernetes Cluster (AKS, EKS, GKE, or OKE) (users can see the How to create a Kubernetes cluster on the cloud page for a quick guide on how to create one)

  2. Install xNIC on K8s Cluster

  3. Test xNIC on K8s

Post-Installation 

In case of a cloudSwXtch upgrade, you can learn how to upgrade your xNIC nodes on K8s here.

xNIC Architecture Diagram

Below is an example architecture for an xNIC installed on AKS with Cilium, with communication to and from a cloudSwXtch. Other Virtual Machines (not AKS) with xNICs installed could also communicate with the AKS worker nodes via cloudSwXtch and xNIC v2. 

AKS-xNIC

PLEASE NOTE

The producer pod and consumer pod of the same stream must be in different nodes. For example, referring to the image above, Consumer Pod 0 is consuming a stream from Producer Pod 1 from a different node. Consumer Pod 0 cannot consume what Producer Pod 0 is creating since they are in the same node.