SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Fonctionnalités et performances
des CNI pour Kubernetes
Illustration devops par @EricRibereau
Jeudi 15 Novembre 2018 - DEVOPS D-DAY - Marseille FRANCE Alexis Ducastel - infraBuilder
Qui suis-je ?
Alexis Ducastel
Président fondateur
Membre du groupement
Organisateur
meetup
Remerciements
Jeu
Tirage au sort après la présentation
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
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
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
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
Contexte : Qu'est qu'une CNI
We are the
knights
who say ...
CNI !
Contexte : Qu'est qu'une CNI
CNI = Container network Interface
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
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
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
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
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
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
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
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
Comparatif : Préambule
Très bien
Bien
Passable
Mauvais
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
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
Comparatif : Pérennité
CNI kubeadm KOPS Kubespray RKE Juju
Calico
Canal
Cilium
Flannel
Kube-router
Romana
WeaveNet
Comparatif : Pérennité
CNI Commits / 1 mois Contributeurs Commits / année Support
Calico 55 87 Tigera
Canal 2 20 Tigera
Cilium 516 76 -
Flannel 3 112 -
Kube-router 9 40 -
Romana 0 10 -
WeaveNet 9 61 WeaveWorks
Comparatif : Performances
Comparatif : Performances
Comparatif : Performances
Comparatif : Performances
Comparatif : Performances
Comparatif : Performances
Comparatif : Performances
Comparatif : Performances
CNI TCP UDP HTTP FTP SCP
Calico
Canal
Cilium
Flannel
Kube-router
Romana
WeaveNet
WeaveNet Crypt
Comparatif : Ressources
Comparatif : Ressources
Comparatif : Ressources
CNI RAM CPU
Calico
Canal
Cilium
Flannel
Kube-router
Romana
WeaveNet
WeaveNet Crypt
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
Conclusion : Récapitulatif
CNI Install Sécurité Pérennité Perfs Conso
Calico
Canal
Cilium
Flannel
Kube-router
Romana
WeaveNet
WeaveNet Crypt
Conclusion : Récapitulatif
CNI Install Sécurité Pérennité Perfs Conso
Calico
Canal
Cilium
Flannel
Kube-router
Romana
WeaveNet
WeaveNet Crypt
Conclusion
WeaveNet
@infraBuilder
https://infrabuilder.com

Contenu connexe

Tendances

ContainerConf 2022: Kubernetes is awesome - but...
ContainerConf 2022: Kubernetes is awesome - but...ContainerConf 2022: Kubernetes is awesome - but...
ContainerConf 2022: Kubernetes is awesome - but...
Nico Meisenzahl
 
Créer une application Cloud native_v7.pdf
Créer une application Cloud native_v7.pdfCréer une application Cloud native_v7.pdf
Créer une application Cloud native_v7.pdf
KhalidKadmiri
 

Tendances (20)

TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Nsx t alb-integration_202108
Nsx t alb-integration_202108Nsx t alb-integration_202108
Nsx t alb-integration_202108
 
ContainerConf 2022: Kubernetes is awesome - but...
ContainerConf 2022: Kubernetes is awesome - but...ContainerConf 2022: Kubernetes is awesome - but...
ContainerConf 2022: Kubernetes is awesome - but...
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 
Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introduction
 
Créer une application Cloud native_v7.pdf
Créer une application Cloud native_v7.pdfCréer une application Cloud native_v7.pdf
Créer une application Cloud native_v7.pdf
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Kubernetes day 2 Operations
Kubernetes day 2 OperationsKubernetes day 2 Operations
Kubernetes day 2 Operations
 
Understanding Split Brain DNS
Understanding Split Brain DNSUnderstanding Split Brain DNS
Understanding Split Brain DNS
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 

Similaire à Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018

Similaire à Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018 (20)

Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...
 
Déploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIs
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Kubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveKubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup Genève
 
Virtual Private Network Virtual Private Network
Virtual Private Network Virtual Private NetworkVirtual Private Network Virtual Private Network
Virtual Private Network Virtual Private Network
 
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : Conf...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : Conf...Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : Conf...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : Conf...
 
2023-02-02 - Marvelous March
2023-02-02 - Marvelous March2023-02-02 - Marvelous March
2023-02-02 - Marvelous March
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
 
Kuberbetes 101: Unlocking containerisation’s full potential
Kuberbetes 101: Unlocking containerisation’s full potentialKuberbetes 101: Unlocking containerisation’s full potential
Kuberbetes 101: Unlocking containerisation’s full potential
 
The real WAX ROADSHOW K8S 2022.pdf
The real WAX ROADSHOW K8S 2022.pdfThe real WAX ROADSHOW K8S 2022.pdf
The real WAX ROADSHOW K8S 2022.pdf
 
Mise en place nagios
Mise en place nagiosMise en place nagios
Mise en place nagios
 
QCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfQCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdf
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de Montréall
 
Mise en place nagios
Mise en place nagiosMise en place nagios
Mise en place nagios
 
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
 
Présentation travail du stage
Présentation travail du stagePrésentation travail du stage
Présentation travail du stage
 
Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
 
ccna 4 frame relay exposée.docx
ccna 4 frame relay exposée.docxccna 4 frame relay exposée.docx
ccna 4 frame relay exposée.docx
 
BIENVENUE.pptx
BIENVENUE.pptxBIENVENUE.pptx
BIENVENUE.pptx
 
Supervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec NagiosSupervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec Nagios
 

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
  • 4. Jeu Tirage au sort après la présentation
  • 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
  • 9. Contexte : Qu'est qu'une CNI We are the knights who say ... CNI !
  • 10. Contexte : Qu'est qu'une CNI CNI = Container network Interface
  • 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
  • 19. Comparatif : Préambule Très bien Bien Passable Mauvais
  • 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
  • 22. Comparatif : Pérennité CNI kubeadm KOPS Kubespray RKE Juju Calico Canal Cilium Flannel Kube-router Romana WeaveNet
  • 23. Comparatif : Pérennité CNI Commits / 1 mois Contributeurs Commits / année Support Calico 55 87 Tigera Canal 2 20 Tigera Cilium 516 76 - Flannel 3 112 - Kube-router 9 40 - Romana 0 10 - WeaveNet 9 61 WeaveWorks
  • 31. Comparatif : Performances CNI TCP UDP HTTP FTP SCP Calico Canal Cilium Flannel Kube-router Romana WeaveNet WeaveNet Crypt
  • 34. Comparatif : Ressources CNI RAM CPU Calico Canal Cilium Flannel Kube-router Romana WeaveNet WeaveNet Crypt
  • 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
  • 36. Conclusion : Récapitulatif CNI Install Sécurité Pérennité Perfs Conso Calico Canal Cilium Flannel Kube-router Romana WeaveNet WeaveNet Crypt
  • 37. Conclusion : Récapitulatif CNI Install Sécurité Pérennité Perfs Conso Calico Canal Cilium Flannel Kube-router Romana WeaveNet WeaveNet Crypt