À propos du projet
Flannel est une solution de réseau simple et efficace, principalement conçue pour les environnements Kubernetes, bien qu'elle prenne également en charge les déploiements Docker. Sa fonction principale est d'établir un réseau IPv4 de couche 3 entre plusieurs nœuds d'un cluster, garantissant que chaque conteneur (pod) dispose d'une adresse IP unique et routable. Ce modèle simplifie la mise en réseau en éliminant les complexités associées au partage des IP des hôtes.
### Architecture de base
Flannel fonctionne via un agent binaire léger appelé `flanneld`, qui s'exécute sur chaque hôte du cluster. L'agent est responsable de l'allocation d'un bail de sous-réseau spécifique à chaque hôte à partir d'un espace d'adressage plus vaste, préconfiguré. Pour maintenir l'état et la configuration, Flannel utilise soit l'API Kubernetes directement (connue sous le nom de gestionnaire de sous-réseaux kube), soit un cluster etcd externe. Cette flexibilité lui permet de stocker les configurations réseau, les sous-réseaux alloués et des données auxiliaires telles que les IP publiques des hôtes.
### Mécanismes de backend
La transmission des paquets entre les hôtes est gérée par divers mécanismes de backend. Ceux-ci incluent VXLAN pour les réseaux overlay et des intégrations spécifiques adaptées à différents fournisseurs de cloud. Les utilisateurs peuvent choisir le backend qui correspond le mieux à leurs exigences d'infrastructure.
### Prise en charge des politiques réseau
Bien que Flannel se concentre sur la connectivité plutôt que sur l'application des politiques, il offre des options pour intégrer des politiques réseau :
- **Contrôleur intégré :** Le chart Helm de Flannel inclut une option pour déployer le contrôleur de politiques réseau de Kubernetes SIGs aux côtés de Flannel.
- **Contrôleurs tiers :** Les utilisateurs peuvent associer Flannel à d'autres projets comme Calico ou Cilium pour une application avancée des politiques, en utilisant éventuellement le chaînage CNI.
### Options de déploiement
Pour les clusters Kubernetes, Flannel peut être déployé manuellement ou via des gestionnaires de paquets :
- **kubectl :** Les utilisateurs peuvent appliquer le manifeste officiel directement avec `kubectl apply`.
- **Helm :** Un dépôt Helm dédié permet une installation et une gestion de configuration faciles.
Il est recommandé d'utiliser les manifestes attachés aux versions spécifiques pour garantir la compatibilité. De plus, le déploiement de Flannel nécessite le module noyau `br_netfilter` et l'installation des plugins réseau CNI dans `/opt/cni/bin`.
Pour les environnements non Kubernetes, comme les configurations Docker autonomes, Flannel s'appuie toujours sur etcd comme magasin de données. La documentation fournit des conseils détaillés pour ces scénarios.
### Communauté et licence
Flannel est un projet open source sous licence Apache 2.0. Il maintient une communauté active avec des réunions régulières des mainteneurs, des canaux Slack pour le support (#k3s sur Rancher Slack, #flannel-users sur Calico Slack) et une documentation complète couvrant la construction, la configuration, le dépannage et les intégrations.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.