Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Interfaces réseau multiples pour conteneurs

À partir de la version 4.0, Contrail prend en charge la mise en réseau des conteneurs à l’aide de Kubernetes Orchestration. Vous pouvez allouer une interface réseau à chaque conteneur que vous créez à l’aide du plug-in CNI (Container Networking Interface) standard. Pour plus d’informations sur Contrail Containers Networking, consultez Intégration de Contrail à Kubernetes.

Avec Contrail Release 5.1, vous pouvez allouer plusieurs interfaces réseau (multi-net) à un conteneur pour lui permettre de se connecter à plusieurs réseaux. Vous pouvez spécifier les réseaux auxquels le conteneur peut se connecter. Une interface réseau est une interface physique ou virtuelle connectée à l’espace de noms réseau Linux. Un espace de noms réseau est la pile réseau du noyau Linux. Plusieurs conteneurs peuvent partager le même espace de noms réseau.

The following limitations and caveats apply when you create multi-net interfaces:

  • Vous ne pouvez pas ajouter ou supprimer des réseaux de side-car tant que le pod est toujours en marche.

  • L’administrateur est responsable de la suppression des pods Contrail correspondants avant de supprimer la définition de pièce jointe réseau du serveur d’API Kubernetes.

  • Contrail crée une valeur par défaut cluster-wide-network en plus des réseaux personnalisés.

  • Le plugin Contrail CNI n’est pas un plugin de délégation. Il ne prend pas en charge les spécifications de délégation de plug-ins fournies dans la définition de ressource personnalisée du réseau Kubernetes De Facto Standard Version 1. Pour plus d’informations, consultez [v1] Kubernetes Network Custom Resource Definition De-facto Standard.md à partir de la page https://github.com/K8sNetworkPlumbingWG/multi-net-spec .

La prise en charge multi-net de Contrail est basée sur le modèle multi-net de Kubernetes. Le modèle multi-net Kubernetes a une conception et une construction spécifiques, et peut être étendu à des modèles non-Kubernetes tels que Contrail multi-net. Le modèle multi-net Contrail ne nécessite aucune modification de l’API Kubernetes et du pilote CNI Kubernetes. Le modèle multi-net Contrail, comme dans le cas du modèle multi-net Kubernetes, ne modifie pas le comportement réseau existant à l’échelle du cluster.

Creating Multi-Net Interfaces

Suivez ces étapes pour créer des interfaces multi-nets.

  1. Créer un modèle objet réseau.

    Vous créez le modèle objet réseau si le cluster ne prend pas en charge le modèle.

    Le modèle objet de la plateforme d’orchestration de conteneurs représente le réseau et relie le réseau à un conteneur. Si le modèle ne prend pas en charge les objets réseau par défaut, vous pouvez utiliser des extensions pour représenter le réseau.

    Création d’un modèle objet réseau à l’aide de l’objet CRD NetworkAttachmentDefinition Kubernetes

    Kubernetes utilise des extensions personnalisées pour représenter les réseaux dans son modèle objet. La fonctionnalité CustomResourceDefinition (CRD) de Kubernetes permet de prendre en charge les extensions personnalisées.

    Note:

    Un CRD est créé automatiquement lorsque vous installez Contrail. Les réseaux spécifiés par CRD sont des side-cars qui ne sont pas reconnus par Kubernetes. L’interaction des pièces jointes réseau de pod supplémentaires avec l’API Kubernetes et ses objets, tels que les services, les points de terminaison, les proxys, etc. n’est pas spécifiée. Kubernetes ne reconnaît pas l’association de ces objets à un pod.

  2. Créez des réseaux.

    Vous créez des réseaux dans le cluster :

    • Via le serveur API.

      Créez un fichier right-network.yaml.

    • Par mappage à un réseau existant créé à partir de l’interface utilisateur de Contrail Web ou de l’interface utilisateur de Contrail Command.

    Commande pour créer le réseau :

  3. Attribuez des réseaux à des pods.

    Vous affectez les réseaux que vous avez créés à l’étape 2 aux pods. Un réseau par défaut est également attribué à chaque pod. Par conséquent, les réseaux suivants seront affectés à chaque pod :

    • réseau par défaut (attribué par Kubernetes)

      Note:

      Contrail crée en interne un réseau par défaut appelé cluster-wide-network. Cette interface est l’interface par défaut pour le pod

    • réseau que vous avez créé à l’étape 2

    Affectation de réseaux à des pods à l’aide de la sémantique k8s :

    Option 1

    Option 2