Présentation par Alexis Ducastel du résultat d'un benchmark de CNIs (plugin de gestion de réseau) sur Kubernetes lors du Devops D-DAY 2018 à Marseille le 15 Novembre 2018.
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
1. Fonctionnalités et performances
des CNI pour Kubernetes
Illustration devops par @EricRibereau
Jeudi 15 Novembre 2018 - DEVOPS D-DAY - Marseille FRANCE Alexis Ducastel - infraBuilder
2. Qui suis-je ?
Alexis Ducastel
Président fondateur
Membre du groupement
Organisateur
meetup
5. Sommaire
1. Contexte
a. La gestion du réseau dans Kubernetes
b. Qu'est qu'une CNI
c. Sélection des CNI du comparatif
d. Environnement des tests
2. Comparatif
a. Installation
b. Sécurité
c. Pérennité
d. Performances
e. Consommation de ressources
3. Conclusion
6. Sommaire
1. Contexte
a. La gestion du réseau dans Kubernetes
b. Qu'est qu'une CNI
c. Sélection des CNI du comparatif
d. Environnement des tests
2. Comparatif
a. Installation
b. Sécurité
c. Pérennité
d. Performances
e. Consommation de ressources
3. Conclusion
7. Contexte : La gestion du réseau dans Kubernetes
CT CT
POD POD
POD Service
Internet Service
Namespace réseau
CNI
( Iptables / IPVS ) + DNS
LoadBalancer / Ingress
8. Contexte : La gestion du réseau dans Kubernetes
CT CT
POD POD
POD Service
Internet Service
Namespace réseau
CNI
( Iptables / IPVS ) + DNS
LoadBalancer / Ingress
11. Contexte : Qu'est qu'une CNI
"Overlay" = réseau virtuel géré par le plugin CNI
"Underlay" = Votre réseau physique
POD POD POD POD
Serveur Serveur Serveur
Plugin
CNI
12. Contexte : Sélection des CNI du comparatif
23
CNI
Référencées
ACI
AOS
Big Cloud Fabric
Calico
Canal
Cilium
CNI-Genie
Contiv
Contrail
DANM
Flannel
GCE
Jaguar
Knitter
Kube-router
L2
Multus
NSX-T
Nuage networks
OpenVSwitch
OVN
Romana
WeaveNet
13. Contexte : Sélection des CNI du comparatif
ACI
AOS
Big Cloud Fabric
Calico
Canal
Cilium
CNI-Genie
Contiv
Contrail
DANM
Flannel
GCE
Jaguar
Knitter
Kube-router
L2
Multus
NSX-T
Nuage networks
OpenVSwitch
OVN
Romana
WeaveNet
8
CNI dans la doc
d'install de kubeadm
14. Contexte : Sélection des CNI du comparatif
Juniper Contrail hors du comparatif
Module vrouter :
/opt/contrail/vrouter-kernel-modules/3.10.0-862.14.4.el7.x86_64/vrouter.ko
...
CENTOS 7.5
15. Contexte : Sélection des CNI du comparatif
CNI Version Date de release Description
Calico 3.3 22 Octobre 2018 L3 , BGP , ETCD
Canal 3.3 22 Octobre 2018 Calico (FW) + Flannel (Net)
Cilium 1.3.0 23 Octobre 2018 L3
Flannel 0.10.0 23 Janvier 2018 * L2 , VXLAN
Kube-router 0.2.1 10 Octobre 2018 L3, BGP, IPVS
Romana 2.0.2 7 Février 2018 L3
WeaveNet 2.4.1 13 Septembre 2018 L2 , VXLAN
16. Contexte : Environnement des tests
OS Ubuntu 18.04 LTS
Kernel version 4.15.0-38-generic (par défaut)
Carte réseau MTU 9000
Docker version 17.12.1-ce (par défaut)
Kubernetes version 1.12.2 (Sortie le 28 Octobre 2018)
Config switch ports en mode access, jumbo frames activés (MTU 9000)
Configuration logicielle
17. Contexte : Environnement des tests
Serveur Supermicro - CM X10SRW-F
CPU 1 * Intel(R) Xeon(R) CPU E5-1630 v3 (4C 8T @ 3.70GHz)
RAM 32Go DDR4
HDD : 4 * 300Go SSD Intel en RAID-0 HW (1267Mo/s lecture)
Réseau : Supermicro AOC-StGn-i2S, Intel 82599ES (10Gbit/s)
Câble DAC SFP+ passifs
3 X
1 X Switch Supermicro SSE-X3348SR (48p 10Gbits + 4p 40Gbit)
Master K8S
Minion K8S - Server
Minion K8S - Client
switch
Test
18. Sommaire
1. Contexte
a. La gestion du réseau dans Kubernetes
b. Qu'est qu'une CNI
c. Sélection des CNI du comparatif
d. Environnement des tests
2. Comparatif
a. Installation
b. Sécurité
c. Pérennité
d. Performances
e. Consommation de ressources
3. Conclusion
20. Comparatif : Installation
CNI Simplicité Tolerations MTU Correction
Calico ConfigMap
Canal ConfigMap
Cilium Install manuelle ETCD
Flannel
Kube-router ConfigMap
Romana Deploy + Daemonset
WeaveNet ENV var
21. Comparatif : Sécurité
CNI Cryptage Network Policies
Calico Non Ingress + Egress
Canal Non Ingress + Egress
Cilium Non Ingress + Egress
Flannel Non Non
Kube-router Non Ingress
Romana Non Doc=oui, Réalité=non
WeaveNet Optionnel Ingress
35. Sommaire
1. Contexte
a. La gestion du réseau dans Kubernetes
b. Qu'est qu'une CNI
c. Sélection des CNI du comparatif
d. Environnement des tests
2. Comparatif
a. Installation
b. Sécurité
c. Pérennité
d. Performances
e. Consommation de ressources
3. Conclusion