Chapitre 24. Plugin réseau OVN-Kubernetes


24.1. À propos du plugin réseau OVN-Kubernetes

Le cluster OpenShift Container Platform utilise un réseau virtualisé pour les réseaux de pods et de services.

Faisant partie de Red Hat OpenShift Networking, le plugin réseau OVN-Kubernetes est le fournisseur de réseau par défaut pour OpenShift Container Platform. OVN-Kubernetes est basé sur Open Virtual Network (OVN) et fournit une implémentation de réseau basée sur la superposition. Un cluster qui utilise le plugin OVN-Kubernetes exécute également Open vSwitch (OVS) sur chaque nœud. OVN configure OVS sur chaque nœud pour mettre en œuvre la configuration réseau déclarée.

Note

OVN-Kubernetes est la solution de mise en réseau par défaut pour OpenShift Container Platform et les déploiements OpenShift à nœud unique.

OVN-Kubernetes, issu du projet OVS, utilise un grand nombre des mêmes constructions, telles que les règles de flux ouvertes, pour déterminer comment les paquets voyagent à travers le réseau. Pour plus d'informations, consultez le site web de l'Open Virtual Network.

OVN-Kubernetes est une série de démons pour OVS qui traduisent les configurations de réseaux virtuels en règles OpenFlow. OpenFlow est un protocole de communication avec les commutateurs et les routeurs de réseau, fournissant un moyen de contrôler à distance le flux du trafic réseau sur un périphérique de réseau, permettant aux administrateurs de réseau de configurer, de gérer et de surveiller le flux du trafic réseau.

OVN-Kubernetes offre davantage de fonctionnalités avancées qui ne sont pas disponibles sur OpenFlow. OVN prend en charge le routage virtuel distribué, les commutateurs logiques distribués, le contrôle d'accès, le DHCP et le DNS. OVN met en œuvre le routage virtuel distribué dans des flux logiques qui équivalent à des flux ouverts. Par exemple, si vous avez un pod qui envoie une requête DHCP sur le réseau, il envoie une diffusion à la recherche d'une adresse DHCP, il y aura une règle de flux logique qui correspondra à ce paquet et qui répondra en lui donnant une passerelle, un serveur DNS, une adresse IP et ainsi de suite.

OVN-Kubernetes exécute un démon sur chaque nœud. Il existe des ensembles de démons pour les bases de données et pour le contrôleur OVN qui s'exécutent sur chaque nœud. Le contrôleur OVN programme le démon Open vSwitch sur les nœuds pour prendre en charge les fonctionnalités du fournisseur de réseau : IP de sortie, pare-feu, routeurs, réseau hybride, cryptage IPSEC, IPv6, politique de réseau, journaux de politique de réseau, délestage matériel et multidiffusion.

24.1.1. Objectif OVN-Kubernetes

Le plugin réseau OVN-Kubnernetes est un plugin CNI Kubernetes open-source et entièrement fonctionnel qui utilise Open Virtual Network (OVN) pour gérer les flux de trafic réseau. OVN est une solution de virtualisation de réseau développée par la communauté et agnostique vis-à-vis des fournisseurs. Le plugin réseau OVN-Kubnernetes :

  • Utilise OVN (Open Virtual Network) pour gérer les flux de trafic du réseau. OVN est une solution de virtualisation de réseau développée par la communauté et indépendante des fournisseurs.
  • Met en œuvre la prise en charge de la politique réseau de Kubernetes, y compris les règles d'entrée et de sortie.
  • Utilise le protocole Geneve (Generic Network Virtualization Encapsulation) plutôt que VXLAN pour créer un réseau superposé entre les nœuds.

Le plugin réseau OVN-Kubernetes présente les avantages suivants par rapport à OpenShift SDN.

  • Prise en charge complète des réseaux IPv6 à pile unique et IPv4/IPv6 à double pile sur les plates-formes prises en charge
  • Prise en charge des clusters hybrides avec des charges de travail Linux et Microsoft Windows
  • Cryptage IPsec facultatif des communications à l'intérieur du cluster
  • Déchargement du traitement des données réseau de l'unité centrale vers des cartes réseau et des unités de traitement des données (DPU) compatibles

24.1.2. Matrice des caractéristiques des plugins réseau pris en charge

Red Hat OpenShift Networking offre deux options pour le plugin réseau, OpenShift SDN et OVN-Kubernetes, pour le plugin réseau. Le tableau suivant résume la prise en charge actuelle des fonctionnalités pour les deux plugins réseau :

Tableau 24.1. Comparaison des fonctionnalités du plugin réseau CNI par défaut
FonctionnalitéOVN-KubernetesOpenShift SDN

IP de sortie

Soutenu

Soutenu

Pare-feu de sortie [1]

Soutenu

Soutenu

Routeur de sortie

Soutenu [2]

Soutenu

Réseau hybride

Soutenu

Non pris en charge

Cryptage IPsec pour les communications à l'intérieur du cluster

Soutenu

Non pris en charge

IPv6

Soutenu [3]

Non pris en charge

Politique de réseau Kubernetes

Soutenu

Soutenu

Journaux de la politique réseau de Kubernetes

Soutenu

Non pris en charge

Déchargement du matériel

Soutenu

Non pris en charge

Multidiffusion

Soutenu

Soutenu

  1. Le pare-feu de sortie est également connu sous le nom de politique de réseau de sortie dans OpenShift SDN. Ce n'est pas la même chose que la politique de réseau de sortie.
  2. Le routeur de sortie pour OVN-Kubernetes ne prend en charge que le mode de redirection.
  3. IPv6 n'est pris en charge que sur les clusters bare metal, IBM Power et IBM zSystems.

24.1.3. OVN-Kubernetes IPv6 et limitations de la double pile

Le plugin réseau OVN-Kubernetes a les limitations suivantes :

  • Pour les clusters configurés pour un réseau à double pile, le trafic IPv4 et IPv6 doit utiliser la même interface réseau comme passerelle par défaut. Si cette condition n'est pas remplie, les modules sur l'hôte dans l'ensemble de démons ovnkube-node entrent dans l'état CrashLoopBackOff. Si vous affichez un pod avec une commande telle que oc get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -o yaml, le champ status contient plus d'un message sur la passerelle par défaut, comme le montre la sortie suivante :

    I1006 16:09:50.985852   60651 helper_linux.go:73] Found default gateway interface br-ex 192.168.127.1
    I1006 16:09:50.985923   60651 helper_linux.go:73] Found default gateway interface ens4 fe80::5054:ff:febe:bcd4
    F1006 16:09:50.985939   60651 ovnkube.go:130] multiple gateway interfaces detected: br-ex ens4

    La seule solution consiste à reconfigurer le réseau de l'hôte de manière à ce que les deux familles IP utilisent la même interface réseau pour la passerelle par défaut.

  • Pour les clusters configurés pour un réseau à double pile, les tables de routage IPv4 et IPv6 doivent contenir la passerelle par défaut. Si cette condition n'est pas remplie, les modules sur l'hôte dans l'ensemble de démons ovnkube-node entrent dans l'état CrashLoopBackOff. Si vous affichez un pod avec une commande telle que oc get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -o yaml, le champ status contient plus d'un message sur la passerelle par défaut, comme le montre la sortie suivante :

    I0512 19:07:17.589083  108432 helper_linux.go:74] Found default gateway interface br-ex 192.168.123.1
    F0512 19:07:17.589141  108432 ovnkube.go:133] failed to get default gateway interface

    La seule solution consiste à reconfigurer le réseau de l'hôte de manière à ce que les deux familles IP contiennent la passerelle par défaut.

24.1.4. Affinité de session

L'affinité de session est une fonctionnalité qui s'applique aux objets Kubernetes Service. Vous pouvez utiliser session affinity si vous voulez vous assurer qu'à chaque fois que vous vous connectez à un <service_VIP>:<Port>, le trafic est toujours équilibré en charge vers le même back-end. Pour plus d'informations, notamment sur la manière de définir l'affinité de session en fonction de l'adresse IP d'un client, voir Affinité de session.

Délai d'attente pour l'affinité de session

Le plugin réseau OVN-Kubernetes pour OpenShift Container Platform calcule le délai d'attente pour une session à partir d'un client sur la base du dernier paquet. Par exemple, si vous exécutez la commande curl 10 fois, le délai de la session collante commence à partir du dixième paquet et non du premier. Par conséquent, si le client contacte continuellement le service, la session n'est jamais interrompue. Le délai d'attente démarre lorsque le service n'a pas reçu de paquet pendant la durée définie par le paramètre timeoutSeconds paramètre.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.