Hi all,
The following 2 bugs have been reported to track the limitations 1&2:
https://bugs.launchpad.net/starlingx/+bug/1835018
https://bugs.launchpad.net/starlingx/+bug/1835020
Limitation 3 should be posted on StarlingX guide on how to use MULTUS/SR-IOV CNI which is still missing. Just like below:
To run SRIOV+DPDK, the pod need to request memory and mount hugepage-volume on correct host path as following:
resources:
requests:
memory: 2Gi
intel.com/pci_sriov_net_physnet0: 2
limits:
memory: 2Gi
intel.com/pci_sriov_net_physnet0: 2
volumeMounts:
- name: hugepage-volume
mountPath: /dev/hugepages
volumes:
- name: hugepage-volume
hostPath:
path: /dev/hugepages
Xu, Chenjie
From: Xu, Chenjie
Sent: Thursday, June 27, 2019 4:32 PM
To: Webster, Steven <Steven.Webster@windriver.com>; Khalil, Ghada <Ghada.Khalil@windriver.com>; Peters, Matt <Matt.Peters@windriver.com>
Cc: Zhao, Forrest <forrest.zhao@intel.com>; Guo, Ruijing <ruijing.guo@intel.com>; Le, Huifeng <huifeng.le@intel.com>
Subject: Limitations on Multus/SRIOV CNI Plugins
Hi Steven,
During my testing on Multus/SRIOV CNI Plugins, I have following findings:
1.
Need sysadmin to set MAC address manually for VF.
2.
The configuration for SR-IOV network device plugin has changed as following:
https://github.com/intel/sriov-network-device-plugin#configurations
For now StarlingX uses its own docker image and doesn’t need to change the configuration. But in the future, this will be a bug when StarlingX updates the docker image
to newer version.
3.
This is not a bug but should be noticed:
Normally, huge pages should be supported by kubernetes to run SRIOV+DPDK. And the pod needs to request huge pages as following:
resources:
requests:
memory: 2Gi
intel.com/pci_sriov_net_physnet0: 2
limits:
hugepages-1Gi: 2Gi
memory: 2Gi
intel.com/pci_sriov_net_physnet0: 2
volumeMounts:
- name: hugepage-volume
mountPath: /dev/hugepages
volumes:
- name: hugepage-volume
emptyDir:
medium: HugePages
However the kubernetes provided by StarlingX will:
enable huge pages for non-openstack based worker node
disable huge pages for openstack based worker node:
https://opendev.org/starlingx/config/src/branch/master/puppet-manifests/src/modules/platform/manifests/kubernetes.pp#L118
But by my testing, the pod can still get huge pages in openstack based worker node on which kubernetes doesn’t provide support for huge pages. And the pod need to request
memory and mount hugepage-volume on correct host path as following:
resources:
requests:
memory: 2Gi
intel.com/pci_sriov_net_physnet0: 2
limits:
memory: 2Gi
intel.com/pci_sriov_net_physnet0: 2
volumeMounts:
- name: hugepage-volume
mountPath: /dev/hugepages
volumes:
- name: hugepage-volume
hostPath:
path: /dev/hugepages
Best Regards,
Xu, Chenjie