(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

Testbed Setup

Pod: Pod12.

Nodes: Node1 and Node2

Worker Node: Node1

Master Node: Node2.

Software Trafficgen Node: Node2

OS: Centos

Project Plan

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