This article is an update of my previous benchmark (2018 and 2019), now running Kubernetes 1.19 and Ubuntu 18.04 with CNI version up-to-date in August 2020.

Contents :

  1. Before we dive into metrics
  2. CNI MTU tuning
  3. CNI benchmark : Raw data
  4. CNI Encryption
  5. Summary
  6. Conclusion - my review

TL;DR : For those in a hurry, please check sections 3 and 4 for graphs, or sections 5 and 6 for my views on the benchmark results and their interpretation.

1) Before we dive into metrics…


New Version available : 2020

This article is a bit old now, it has been updated. Check it out !

https://itnext.io/benchmark-results-of-kubernetes-network-plugins-cni-over-10gbit-s-network-updated-august-2020-6e1b757b9e49

This article is an update of my previous benchmark, now running on Kubernetes 1.14 with CNI version up-to-date in April 2019.

First of all, many thanks to Cilium team who helped me by reviewing and correcting my metrics monitoring scripts.

What’s new since November 2018

If you just want to know what has changed since last time, here is a quick summary :

Flannel is still one of the fastest and leanest in the CNI competition, but still does not support NetworkPolicies, nor encryption.

Romana is not maintained anymore, so we decided to get it out of the benchmark. …


As a Kubernetes administrator, I usually deploy standalone kubernetes cluster to test some features, applications, or even kubernetes tooling. But in this case, it takes some time to deploy Kubernetes, CNI, storage solution, load balancer service implementation, ingress controller, monitoring, logging, etc. With Kubernetes-ready cloud distribution like GKE, or DigitalOcean, it is fair simple, but how to do the same with bare-metal ? This may, of course, include your linux VM on your machine …

k8s-tew is a single binary written in GO, with no external dependency, that will easily deploy a Kubernetes cluster over bare-metal (understand : no cloud provider required) even for a single node test-bench for your POCs. …


Long story short, here are two cheatsheets for Kubernetes (tested on 1.13), one in English, and one in French. It will give you some useful commands using kubectl, kubectx, kubens, kubetail, … and also some manifest samples for Ingress and PersistentVolumeClaim.

You can find the English version in PDF format at: https://ibd.sh/cheatsheet-k8s

And the French PDF version at: https://ibd.sh/memo-k8s

Here is a preview of the English version :

Image for post
Image for post
Kubernetes cheatsheet EN — PDF available at https://ibd.sh/cheatsheet-k8s

And the same in French :


New Version available : 2020

This article is a bit old now, it has been updated. Check it out !

https://itnext.io/benchmark-results-of-kubernetes-network-plugins-cni-over-10gbit-s-network-updated-august-2020-6e1b757b9e49

Kubernetes is a great orchestator for containers. But it does not manage network for Pod-to-Pod communication. This is the mission of Container Network Interfaces (CNI) plugins which are a standardized way to achieve network abstraction for container clustering tools (Kubernetes, Mesos, OpenShift, etc.)

But here is the point : what are the differences between those CNIs ? Which one has the best performance ? Which one is the leanest ?

This article is showing the results of a benchmark I’ve conducted on 10Gbit/s network. These results were also presented during a conference at the Devops D-DAY 2018 in Marseille (France) on November 15, 2018. …

About

Alexis Ducastel

infraBuilder founder, Kubernetes CKA and CKAD, Cloudera Big Data certified administrator, devops meetup organizer, member of Build-and-Run group.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store