3 votes

Adresse IP des pods dans Kubernetes

Comment les pods obtiennent-ils des adresses IP uniques même s'ils résident sur le même nœud ouvrier ?

Aussi, un pod n'est pas un périphérique, quelle est la logique derrière lui attribuer une adresse IP ?
L'adresse IP attribuée à un pod est-elle une adresse IP virtuelle ?

2voto

VonC Points 414372

Un pod fait partie d'un cluster (groupe de noeuds), et le réseau de cluster vous indique que :

En réalité, Kubernetes applique des adresses IP au niveau du Pod - les conteneurs au sein d'un Pod partagent leurs espaces de noms réseau - y compris leur adresse IP.

Cela signifie que les conteneurs à l'intérieur d'un Pod peuvent tous se joindre aux ports des autres sur localhost.
Cela implique que les conteneurs à l'intérieur d'un Pod doivent coordonner l'utilisation des ports, mais ce n'est pas différent des processus dans une VM.
Cela s'appelle le modèle “IP-par-pod”.

Les contraintes sont :

  • tous les conteneurs peuvent communiquer entre eux sans NAT
  • tous les noeuds peuvent communiquer avec tous les conteneurs (et vice-versa) sans NAT
  • l'IP qu'un conteneur voit de lui-même est la même IP que les autres voient de lui

En savoir plus avec "Networking avec Kubernetes" de Alok Kumar Singh:

https://cdn-images-1.medium.com/max/1000/1*lAfpMbHRf266utcd4xmLjQ.gif

Ici :

Nous avons une machine, elle s'appelle un node dans Kubernetes.
Elle a une IP 172.31.102.105 appartenant à un sous-réseau ayant la CIDR 172.31.102.0/24.

(CIDR : Routage Inter-Domaines sans classe, une méthode pour allouer des adresses IP et des routes IP)

Le noeud dispose d'une interface réseau eth0 attachée. Elle appartient à l'espace de noms réseau root du noeud.
Pour que les pods soient isolés, ils ont été créés dans leurs propres espaces de noms réseau - ce sont les espaces de noms réseau pod1 et pod2.
Les pods se voient attribuer les adresses IP 100.96.243.7 et 100.96.243.8 dans la plage CIDR 100.96.0.0/11.

Pour cela, voir "Réseautage avec Kubernetes" de CloudNativelabs:

Kubernetes n'orchestre pas la mise en place du réseau et délègue le travail aux plug-ins CNI (Interface de Réseau de Conteneur). Veuillez vous référer à la spécification CNI pour plus de détails sur la spécification CNI.

Voici les options d'implémentation de réseau possibles via les plug-ins CNI qui permettent la communication pod-à-pod en respectant les exigences de Kubernetes :

  • une solution de couche 2 (commutation)
  • une solution de couche 3 (routage)
  • des solutions de superposition (overlay)

couche 2 (commutation)

https://cloudnativelabs.github.io/img/l2-network.jpg

Vous pouvez voir leur IP attribuée en tant que partie de la plage d'adresses du sous-réseau du conteneur.

couche 3 (routage)

https://cloudnativelabs.github.io/img/l3-gateway-routing.jpg

Cela consiste à peupler le routeur de passerelle par défaut avec des routes pour le sous-réseau tel qu'indiqué dans le diagramme.
Les routes vers 10.1.1.0/24 et 10.1.2.0/24 sont configurées pour passer par node1 et node2 respectivement.

solutions de superposition

Généralement pas utilisées.

Remarque : Voir également (Oct. 2018) : "Réseau Google Kubernetes Engine".

0voto

suren Points 1638

Kubernetes crée un réseau au sein de votre réseau pour les conteneurs. Dans GKE, par exemple, par défaut, il s'agit d'un /14, mais peut être écrasé par un utilisateur avec une plage entre /11 et /19.

Lorsque Kubernetes crée un pod, il attribue une adresse IP de ces plages. Maintenant, vous ne pouvez pas avoir une autre machine virtuelle, non partie de votre cluster, dans votre réseau, avec la même adresse IP qu'un pod.

Pourquoi ? Imaginez, vous avez un tunnel VPN qui doit livrer un paquet à une adresse que le pod et la machine virtuelle utilisent. À qui va-t-il livrer ?

Donc, pour répondre à votre question ; non, ce n'est pas une adresse IP virtuelle, c'est une adresse IP physique de votre réseau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X