编程知识 cdmana.com

Introduction au réseau docker

In Docker Phase initiale,La conception du réseau est vraiment très complexe,C'était presque amusant de configurer le réseau à cette époque.

Docker Exécuter l'application à l'intérieur du conteneur,L'interaction entre ces applications dépend d'un grand nombre de réseaux différents,Docker Besoin d'un réseau puissant.Docker Entre les conteneurs、Conteneur avec réseau externe et VLAN Il y a des solutions pour les connexions entre.

Pour ceux qui ont besoin d'un système externe(Comme les machines virtuelles et physiques)Les applications conteneurisées avec lesquelles le Service traite sont essentielles.

Docker L'architecture du réseau provient d'un modèle de réseau de conteneurs(CNM)Programme,Le système est open source et prend en charge les connexions plug - in.

Libnetwork - Oui. Docker C'est exact. CNM Une réalisation de,Offre Docker Fonctionnalité complète de l'architecture du réseau central.Différents disques peuvent être connectés par plug - and - plug Libnetwork Pour fournir une topologie de réseau personnalisée.

Pour obtenir l'effet de déballage et d'utilisation,Docker Une série d'entraînements locaux sont encapsulés,Couvrant la plupart des besoins communs du réseau.Il s'agit notamment d'un réseau de ponts autonomes(Single-Host Bridge Network)、Réseau de superposition Multi - ordinateurs(Multi-Host Overlay),Et prend en charge l'accès aux VLAN.

Docker Les partenaires de l'écosystème en fournissant des moyens moteurs,A été élargi Docker Fonctions réseau pour.Libnetwork Offre une solution d'équilibrage de charge de conteneur pour la découverte de service local et la base .


Théorie fondamentale
Dans la conception du dernier étage ,Docker L'architecture du réseau est 3 Composantes principales :CNM、Libnetwork Et la conduite.

    CNM C'est la norme de conception .In CNM Moyenne,C'est réglé. Docker Éléments fondamentaux de l'architecture du réseau .
    Libnetwork - Oui. CNM Réalisation concrète,Et est Docker Adoption,Libnetwork Adoption Go Rédaction Linguistique,Et a réalisé CNM Éléments de base énumérés dans .
    Drive étend la capacité du modèle en implémentant une topologie de réseau spécifique .
La figure ci - dessous montre comment chaque partie de la conception de haut niveau est assemblée .

 1) CNM
Tout commence par le design. !

Docker Les spécifications de conception de l'architecture du réseau sont les suivantes: CNM.CNM Dans Docker Éléments fondamentaux du réseau , Pour plus de détails, voir GitHub De docker/libnetwork Bibliothèque.

Dans l'abstrait,CNM Défini 3 Éléments de base:Sandbox(Sandbox)、Terminal(Endpoint)Et le réseau(Network).

    Sandbox est une pile réseau autonome . Cela comprend l'interface Ethernet 、Port、Tables de routage et DNS Configuration.
    Le terminal est une interface réseau virtuelle . Comme une interface réseau normale , .La responsabilité principale du terminal est de créer la connexion .In CNM Moyenne, Le terminal est responsable de la connexion du bac à sable au réseau .
    Le réseau est 802.1d Passerelle( Commutateur similaire )Mise en œuvre logicielle de. Un réseau est une collection de terminaux qui doivent interagir , Et les terminaux sont indépendants les uns des autres .
Le graphique ci - dessous montre 3 Comment les composants sont connectés .

Docker La plus petite Unit é d'expédition dans l'environnement est le conteneur ,Et CNM Comme son nom , Responsable de la fonctionnalité réseau du conteneur .

Le graphique ci - dessous montre CNM Comment le composant est associé au conteneur —— Bac à sable placé à l'intérieur du conteneur , Fournir une connexion réseau au conteneur .

Conteneur A Une seule interface(Terminal) Et connecté au réseau A.Conteneur B Il y a deux Interfaces(Terminal) Et connecté au réseau A Et le réseau B.Conteneur A Avec B Ils communiquent entre eux. , Parce qu'ils sont connectés au réseau A. Sans le support d'un routeur à trois niveaux ,Conteneur B Il n'y a pas de communication entre les deux terminaux .

Il est important de comprendre , Le terminal est similaire à un adaptateur réseau commun , Le terminal ne peut accéder qu'à un seul réseau . Si le conteneur doit être connecté à plus d'un réseau , Plusieurs terminaux sont nécessaires .

La figure ci - dessous élargit le contenu précédent ,Plus maintenant. Docker Hôte.Bien que les conteneurs A Et les contenants B Fonctionne sur le même hôte , Mais ses piles réseau sont indépendantes les unes des autres au niveau du système d'exploitation , Ceci est garanti par le mécanisme Sandbox .

 2) Libnetwork
CNM Est un document de spécification de conception ,Libnetwork Est une mise en œuvre standard .Libnetwork Open Source,Adoption Go Rédaction Linguistique,C'est multi - plateforme(Linux Et Windows),Et est Docker Utilisé.

In Docker Phase initiale, Le Code de la partie réseau existe dans daemon Milieu.daemon Gonflé, Et ne correspond pas UNIX Principes de conception modulaire des outils , C'est - à - dire capable de travailler indépendamment , Facile à intégrer dans d'autres projets .Docker Déplacer la partie réseau de daemon Division moyenne, Et reconstruit en un système appelé Libnetwork Bibliothèque de classe externe pour .Maintenant,Docker Le Code d'architecture du réseau central est dans Libnetwork Milieu.Libnetwork C'est fait. CNM Tout ce qui est défini dans 3 Composants. De plus, il permet la découverte de services locaux (Service Discovery)、Basé sur Ingress Équilibrage de la charge du conteneur pour , Et les fonctions de contrôle et de gestion du réseau .

 3) Drive
Si c'est le cas, Libnetwork Réalisation des fonctions de contrôle et de gestion , Le pilote est alors responsable de la mise en œuvre de la couche de données . La connectivité et l'isolement du réseau sont gérés par des moteurs , Il en va de même pour la création réelle d'objets réseau par la couche pilote ,La relation est illustrée dans la figure ci - dessous..

Docker Plusieurs entraînements intégrés sont encapsulés , Souvent appelé entraînement natif ou local .

In Linux Y compris: Bridge、Overlay Et Macvlan,In Windows Y compris: NAT、Overlay、Transport Et L2 Bridge.

Un tiers peut également écrire Docker Entraînement réseau. Ces pilotes sont appelés pilotes distants ,Par exemple Calico、Contiv、Kuryr Et Weave.

.Chaque pilote est responsable de la création et de la gestion de toutes les ressources du réseau sur son .L'un s'appelle“prod-fe-cuda” Le réseau de superposition de Overlay Conduire tout et gérer .Cela signifie Overlay Le pilote va créer 、 Appelé lors de la gestion et de la suppression des ressources réseau sur elle .

Pour répondre à des besoins environnementaux complexes et instables ,Libnetwork Prise en charge de l'activation simultanée de plusieurs pilotes réseau .Cela signifie Docker L'environnement peut supporter un vaste réseau hétérogène .

版权声明
本文为[Petit, York?]所创,转载请带上原文链接,感谢
https://cdmana.com/2022/01/202201080556241102.html

Scroll to Top