Alguns esclarecimentos (não é realmente uma resposta)
No kubernetes, cada pod recebe um endereço IP e cada contêiner no pod recebe o mesmo endereço IP. Assim, como Alex Robinson afirmou em sua resposta , você pode apenas usar hostname -i
dentro do seu contêiner para obter o endereço IP do pod.
Eu testei com um pod executando dois contêineres burros e, de fato, hostname -i
estava gerando o mesmo endereço IP em ambos os contêineres. Além disso, aquele IP era equivalente ao obtido usando kubectl describe pod
de fora, o que valida a coisa toda IMO.
No entanto, a resposta de PiersyP parece mais clara para mim.
Fontes
Dos documentos do kubernetes :
Todos os aplicativos em um pod usam o mesmo namespace de rede (mesmo IP e espaço de porta) e podem, portanto, “encontrar” uns aos outros e se comunicar usando localhost. Por isso, os aplicativos em um pod devem coordenar o uso das portas. Cada pod tem um endereço IP em um espaço de rede compartilhado plano que tem comunicação total com outros computadores físicos e pods na rede.
Outra parte da documentação do Kubernetes :
Até agora, este documento falou sobre contêineres. Na realidade, o Kubernetes aplica endereços IP no escopo do pod - os contêineres em um pod compartilham seus namespaces de rede - incluindo seu endereço IP. Isso significa que todos os contêineres em um pod podem alcançar as portas uns dos outros no localhost.
printenv | grep '10.254.24.167'
não retorna nada, exceto a variável definida pelo usuário MY_POD_IP. De qualquer forma, faça meu voto, senhor :)