Kubernetes (parfois appelé K8s) est une plate-forme open source utilisée pour gérer et automatiser le déploiement, la planification, la surveillance, la maintenance et l’exploitation de conteneurs d’applications au sein d’un cluster de machines.
Développée par Google, la gestion de réseau avec Kubernetes permet aux administrateurs de déplacer des charges de travail entre des infrastructures privées, publiques et de Cloud hybride. Les développeurs utilisent Kubernetes pour créer des packages d’applications logicielles avec leur infrastructure requise et déployer rapidement de nouvelles versions.
La gestion de réseau Kubernetes permet aux composants de Kubernetes de communiquer entre eux et avec d’autres applications. La plate-forme Kubernetes diffère d’autres plates-formes de gestion de réseau car elle repose sur une structure réseau à plat, qui élimine le besoin mettre en correspondance les ports des hôtes avec les ports des conteneurs. La plate-forme Kubernetes offre un moyen d’exécuter des systèmes distribués, de partager les machines entre applications, sans avoir à attribuer dynamiquement les ports.
Un réseau de pods Kubernetes connecte plusieurs composants en corrélation :
Les différents composants de la plate-forme Kubernetes (pods, conteneurs, nœuds, applications) utilisent différentes méthodes de gestion du réseau pour communiquer. Il existe une communication de conteneur à conteneur, une communication de pod à pod, une communication de pod à service, et une communication de l’extérieur au service.
La communication de pod à pod constitue le socle de Kubernetes. Les pods communiquent entre eux selon des règles réseau définies par le plug-in réseau, et communiquent avec d’autres pods sans créer explicitement de liens entre eux, ni mettre en correspondance les ports du conteneur au ports de l’hôte. Comme les pods partagent le même espace de nommage réseau et possèdent leurs propres adresses IP, ils peuvent trouver tous les autres pods sur tous les nœuds et communiquer avec eux au moyen de l’hôte local, sans avoir à utiliser la traduction d’adresse réseau (NAT).
L’une des difficultés de la gestion de réseau Kubernetes consiste à résoudre l’interaction entre le trafic interne (est-ouest) et le trafic externe (nord-sud), puisque le réseau interne est isolé du réseau externe. Toutefois, le trafic qui transite entre les nœuds peut également passer vers et depuis les nœuds et une machine physique ou virtuelle externe. Il existe différentes manières de faire parvenir le trafic externe dans un cluster Kubernetes :
Un aspect important de la gestion de réseau Kubernetes est l’interface CNI (Container Networking Interface). L’interface CNI connecte les pods dans l’ensemble des nœuds et sert d’interface entre un espace de nommage réseau et un plug-in réseau, ou un fournisseur réseau et un réseau Kubernetes. Vous avez le choix entre de nombreux fournisseurs CNI et de nombreux plug-ins, chacun offrant différentes fonctionnalités. Les plug-in CNI ont la capacité de configurer dynamiquement un réseau et des ressources à mesure de la création et de la suppression des pods. Ils provisionnent et gèrent des adresses IP à mesure de la création et de la suppression des conteneurs. Kubernetes est le fournisseur réseau par défaut pour Kubernetes, mais des plug-in CNI tels que Flannel, Calico, Canal et Weave Net offrent d’autres fonctionnalités.
Les administrateurs réseau disposent d’une vaste palette de méthodes de mise en œuvre du modèle réseau Kubernetes. Gartner a reconnu les exemples de réseau Kubernetes suivants comme « visionnaires » dans son rapport Magic Quadrant for Data Center Networking de 2019 :
VMware NSX Data Center fournit une plate-forme de virtualisation du réseau et de la sécurité des couches L2-L7 pour permettre la gestion du réseau entier sous la forme d’une seule entrée à partir d’une console unique.
Faites vos premiers pas sur VMware Enterprise PKS Déployez, exécutez et gérez Kubernetes pour la production avec productivité et efficacité
Fournissez une gestion réseau et une sécurité intégrées complètes pour vos applications et microservices conteneurisés.
Créez des applications rapidement, exécutez Kubernetes open source de manière homogène et gérez toute votre présence réseau en toute confiance.