Anuket Project

K8S Container Networking Benchmarking (Telco Usecases)


(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 hereConsidering 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

Parth Yadav   Emanuele Urselli

Phase-1 Action Plan:

Sl. No.Parth YadavEmanuele Urselli
1Network Configuration for K8s with K8s Deamonset/CNI plugins (yaml files)Installation of Kubeadm, Kubectl, Kubelet (using Ansible)
2Deploy Pods based on testing scenarios (yaml files)Cluster creation using Kubeadm (using Ansible)
3-Deletion of K8s cluster (using Ansible)
4End to End Testing.

References