(Work in progress)
Description
This work aims to add multiple-interface container Networking benchmarking support in VSperf. In this project, we will focus on container networking with Kubernetes. There are various plugin options that are available to achieve cluster networking, as described here. Considering various options for container networking, it is important to understand and benchmark the performance of these networking solutions. Today, there exists few works that studies the container networking performance. However, none of them consider "Multiple Data Interfaces" and majority of them do NOT use high-performance traffic generators and analysis tools, or run on high-performance servers that are used in NFV. VSPERF, which provides detailed configuration and control, is ideal project to include testing and benchmarking container networking solution. This work will be COMPLIMENTARY to CNCF Testbed activities. This work also gains significance with CNTT-RA2, which is Kubernetes based.
VSperf plans to use CNI network model for deploying container networks and Multus plugin for adding multiple interfaces to Kubernetes Pods. It is to be noted that CNI network model and Multus are used for setting up (and deleting) multiple interfaces based container network. The 3rd party CNI plugins such as ovs and vpp will be used to build the actual dataplane on which data traffic will flow.
Objectives
- Automated container networking deployment and performance testing.
- Study and present an in-depth analysis of methodologies to measure container networking performance (using high-performance traffic generators and analysis tools)
- Provide a comparative analysis of various container networking solutions using results to the LFN community.
- Work in close with BMWG to provide feedback on "Considerations for Benchmarking Network Performance in Containerized infrastructure" work.
- Provide feedback to CNTT for RA2, RI2, RC2
- Provide feedback to ETSI on container network benchmarking methodologies.
Testbed Setup
Pod: Pod12.
Nodes: Node1 and Node2
Worker Node: Node1
Master Node: Node2.
Software Trafficgen Node: Node2
OS: Centos
Project Plan
- Prepare for Project - CN Kubernetes, Multus, CNI Plugins, etc. Parth Yadav Emanuele Urselli
- Familiarity with VSPERF - running in NO-TRAFFICGEN Mode Sridhar Rao Parth Yadav Emanuele Urselli
- Setup Node-1 and Node-2 in Pod12 - Install Fresh Operating Systems Sridhar Rao
- Finalize the Testcases to Run Al Morton Sridhar Rao Federica Paganelli
- Scenario-1: Automated Kubernetes Cluster Deployment with Single Interface Parth Yadav Emanuele Urselli - Outcome: Config File, APIs and Script
- Run Performance Tests. Modify plugin and repeat the performance tests Parth Yadav Emanuele Urselli - Outcome: TestConfigs and Results
- Version-1 Integration with VSPERF Sridhar Rao - Outcome - Run Scenario-1 from VSPERF.
- Comprehensive Literature Survey - Version1 Sridhar Rao Federica Paganelli - Outome - Technical Report with critical analysis
- Scenario-2 Automated Deployment of Multiple Interface pods Parth Yadav Emanuele Urselli - Outcome: Enhanced COnfig files, APIs and Script
- Run Performance tests on Scenario-2 Parth Yadav Emanuele Urselli - Outcome: Testconfigs and Results
- Update Scenario-2 with Different Plugin, Run Performance tests Parth Yadav Emanuele Urselli - Outcome: Testconfigs and Results
- Verision-2 Integration with VSPERF Sridhar Rao - Outcome: Run Scenario-2 from VSPERF.
- Run More Tests and Improve Automation Parth Yadav Emanuele Urselli
Metrics Collection and Visualization
VSperf collects various metrics/results like TrafficGen data traffic results, Infrastructure metrics, Environment Information, Container metrics using tools like collectd, cAdvisor, pidstat, beats, prox, crond, etc..
VSperf also has various dashboards(Grafana, Kibana) to visualize these metrics live when tests are running.
Project Members
Phase-1 Action Plan:
Sl. No. | Parth Yadav | Emanuele Urselli |
---|---|---|
1 | Network Configuration for K8s with K8s Deamonset/CNI plugins (yaml files) | Installation of Kubeadm, Kubectl, Kubelet (using Ansible) |
2 | Deploy Pods based on testing scenarios (yaml files) | Cluster creation using Kubeadm (using Ansible) |
3 | - | Deletion of K8s cluster (using Ansible) |
4 | End to End Testing. |
References
- [BMWG draft (W.I.P as of 3 March 2020)]: Considerations for Benchmarking Network Performance in Containerized Infrastructure
- [RFC8204]: Benchmarking Virtual Switches in the Open Platform for NFV (OPNFV)
- [ETSI]: GS NFV TST 009
- An Analysis and Empirical Study of Container Networks