Algunas aclaraciones (no es realmente una respuesta)
En kubernetes, a cada pod se le asigna una dirección IP y a cada contenedor en el pod se le asigna la misma dirección IP. Por lo tanto, como dijo Alex Robinson en su respuesta , puede usarlo hostname -i
dentro de su contenedor para obtener la dirección IP del pod.
Probé con un pod que ejecutaba dos contenedores tontos y, de hecho, hostname -i
estaba generando la misma dirección IP dentro de ambos contenedores. Además, esa IP era equivalente a la obtenida usando kubectl describe pod
desde afuera, lo que valida todo en mi opinión.
Sin embargo, la respuesta de PiersyP me parece más limpia.
Fuentes
De los documentos de Kubernetes :
Todas las aplicaciones de un pod utilizan el mismo espacio de nombres de red (la misma IP y espacio de puerto) y, por lo tanto, pueden "encontrarse" entre sí y comunicarse mediante localhost. Debido a esto, las aplicaciones en un pod deben coordinar el uso de los puertos. Cada pod tiene una dirección IP en un espacio de red compartido plano que tiene comunicación completa con otras computadoras físicas y pods a través de la red.
Otra pieza de los documentos de Kubernetes :
Hasta ahora este documento ha hablado de contenedores. En realidad, Kubernetes aplica direcciones IP en el ámbito del Pod (los contenedores dentro de un Pod comparten sus espacios de nombres de red) incluida su dirección IP. Esto significa que los contenedores dentro de un Pod pueden llegar a los puertos de los demás en localhost.
printenv | grep '10.254.24.167'
no devuelve nada excepto la variable definida por el usuario MY_POD_IP. De todos modos, tome mi voto, señor :)