Calico est une solution réseau pour Kubernetes qui se veut simple, scalable et sécurisée. Côté réseau, elle supporte l’adressage ipv4 et ipv6. Elle utilise le composant de Kubernetes kube-proxy pour gérer les règles de filtrage. Kube-proxy utilise les iptables Linux pour créer des règles de filtrage sur les réseaux et ainsi isoler les conteneurs.
Pour rentrer dans le détail : Calico fonctionne par défaut en Ethernet (L2). Il peut se configurer pour utiliser IPinIP (L3). IPinIP est un tunnel IP, un paquet IP encapsule un autre paquet IP en ajoutant en header un champ « SourceIP » qui sert d’entrée pour le tunnel et le champ « Destination » qui sert de point de sortie.
Flannel est une solution réseau pour Kubernetes fonctionnant avec plusieurs backends, VxLAN étant le backend recommandé (les autres sont plus expérimentaux) pour encapsuler les paquets. Seul l’IPv4 est supporté.
Il fonctionne avec etcd, notamment pour lire ses configurations et stocker les configurations réseaux. Il met en place des sous-réseaux sur chaque hôte grâce à un agent nommé flanneld.
Il crée un seul réseau VxLAN. Chaque nouveau pod est rattaché à ce VxLAN avec une veth. Flannel ne supporte pas le lancement de plusieurs réseaux sur un seul daemon, mais il est possible de lancer plusieurs daemon sur un seul hôte avec des configurations différentes.
WeaveNet est une solution réseau proposant un plugin réseau (Weave CNI Plugin) pour Kubernetes fonctionnant avec des VxLAN en L2. Il utilise kube-proxy et kube-dns (son composant weave-DNS est désactivé dans le cas d’une intégration avec Kubernetes). Il supporte IPv4 et IPv6.
Nom | Flannel | Calico | Cilium | Weavenet | Canal |
---|---|---|---|---|---|
Mode de déploiement | DaemonSet | DaemonSet | DaemonSet | DaemonSet | DaemonSet |
Encapsulation and Routing | VxLAN | IPinIP, BGP, eBPF | VxLAN, eBPF | VxLAN | VxLAN |
Support for Network Policies | No | Yes | Yes | Yes | Yes |
Datastore used | Etcd | Etcd | Etcd | No | Etcd |
Encryption | Yes | Yes | Yes | Yes | No |
Ingress Support | No | Yes | Yes | Yes | Yes |
Enterprise Support | No | Yes | No | Yes | No |
IPv6 | Non | Oui | Oui | Non | Non |