Cluster Requirements

Overview

Prior to integrating Cloud-Native Network Functions (CNFs) into the Robin Cloud-Native Platform (CNP), review this document to ensure the required software components are installed and properly configured.

Software support

The CNFs and Robin software versions listed below are the tested versions. F5 recommends these versions for the best performance and installation experience.

CNFs OpenShift
1.0.4 5.3.11-104
1.0.0 5.3.5-207

CPU Allocation

Multiprocessor servers divide memory and CPUs into multiple NUMA nodes, each having a non-shared system bus. The CNF Controller requires that the CPUs and SR-IOV VFs allocated to the Traffic Management Microkernel (TMM) share the same NUMA node. To ensure the NUMA node alignment is handled properly, the Robin installation must include the following parameters and values:

  • The --cpu-manager-policy must be set to static.
  • The --topology-manager-policy must be set to single-numa-node.

CPU Hyper-threading

To optimize 5G workload throughput and avoid container scheduling failures, F5 recommends disabling Simultaneous multithreading (SMT) hyper-threading (HT) on those worker nodes that CNF Pods will be scheduled.

SR-IOV Support

To ensure the BIG-IP Controller discovers and properly allocates Physical Functions (PF) to the TMM container, the following PF/VF driver requirements must be met:

  1. Upgrade the E810 ice (SR-IOV PF) driver from version 0.7.1 to version 1.6.4 or later.

  2. Enable SR-IOV support for E810 NICs.

  3. Replace iavf with the vfio-pci VF driver in /etc/modprobe.d/vfio.conf:

    blacklist iavf
    options vfio-pci ids=8086:1889
    
  4. Enable both IOMMU and hugepages in /etc/default/grub file:

    GRUB_CMDLINE_LINUX should include iommu=pt intel_iommu=on hugepagesz=2M hugepages=32768  default_hugepagesz=2M vfio-pci.ids=8086:1889
    
  5. Generate GRUB configuration file. The commands may differ if you are using BIOS or UEFI:

    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
    
  6. Load the VFIO modules at boot time by adding the below entries to the /etc/modules-load.d/vfio.conf file:

    vfio
    vfio-pci
    
  7. Configure VFs for SR-IOV capable NICs by adding the entries below to the /etc/rc.d/rc.local file:

    Note: You may need to run chmod +x /etc/rc.d/rc.local.

    echo 16 > /sys/class/net/p1p1/sriov_numvfs
    echo 16 > /sys/class/net/p1p2/sriov_numvfs
    
  8. Reboot the worker node.

  9. Confirm hugepages are enabled on the worker node:

    grep HugePages_Total /proc/meminfo
    
    HugePages_Total:   32768
    
  10. Confirm the VFIO modules have loaded:

    lsmod | grep -i vfio
    
    vfio_pci               41993  0
    irqbypass              13503  2 kvm,vfio_pci
    vfio_iommu_type1       22440  0
    vfio                   32657  2 vfio_iommu_type1,vfio_pci
    
  11. If the VF resources are not discovered by Kubernetes, use the robin host probe command to rediscover the host configuration:

    robin host probe [<hostname>|--all] --rediscover
    

IP Pools

Configure the Robin IP Pools parameters with the following values:

  • Set the --spoofchk-disabled parameter.
  • Set the --trusted parameter.
  • Do not set the --vlan parameter, use the F5BigNetVlan CR tag parameter.

Example:

robin ip-pool add robin-pool-1095 --ranges 10.144.100.1-255 --prefix 16 --driver sriov \
--nictags name=p1p1 --vfdriver vfio-pci --trusted --spoofchk-disabled

Persistent storage

The optional Fluentd logging collector, dSSM database and Traffic Management Microkernel (TMM) Debug Sidecar require an available Kubernetes persistent storage to bind to during installation.

Next step

Continue to the Getting Started guide to begin integrating CNFs.

Feedback

Provide feedback to improve this document by emailing cnfdocs@f5.com.

Supplemental

  • The CNI project.