Quelques clarifications (pas vraiment une réponse)
Dans kubernetes, chaque pod se voit attribuer une adresse IP et chaque conteneur du pod se voit attribuer la même adresse IP. Ainsi, comme Alex Robinson l'a déclaré dans sa réponse , vous pouvez simplement utiliser l' hostname -i
intérieur de votre conteneur pour obtenir l'adresse IP du pod.
J'ai testé avec un pod exécutant deux conteneurs stupides, et je sortais en effet hostname -i
la même adresse IP dans les deux conteneurs. En outre, cette IP était équivalente à celle obtenue en utilisant kubectl describe pod
de l'extérieur, qui valide le tout IMO.
Cependant, la réponse de PiersyP me semble plus claire.
Sources
À partir de la documentation Kubernetes :
Les applications d'un pod utilisent toutes le même espace de noms réseau (même IP et même espace de port), et peuvent ainsi se «trouver» et communiquer en utilisant localhost. Pour cette raison, les applications d'un pod doivent coordonner leur utilisation des ports. Chaque pod a une adresse IP dans un espace réseau partagé plat qui a une communication complète avec d'autres ordinateurs physiques et pods sur le réseau.
Un autre élément de la documentation Kubernetes :
Jusqu'à présent, ce document parlait de conteneurs. En réalité, Kubernetes applique les adresses IP à la portée du pod - les conteneurs d'un pod partagent leurs espaces de noms réseau - y compris leur adresse IP. Cela signifie que les conteneurs d'un pod peuvent tous atteindre les ports les uns des autres sur l'hôte local.
printenv | grep '10.254.24.167'
ne renvoie rien d'autre que la variable définie par l'utilisateur MY_POD_IP. Quoi qu'il en soit, prenez mon vote monsieur :)