Kilka wyjaśnień (nie jest to odpowiedź)
W Kubernetes każdemu podowi jest przypisany adres IP, a każdemu kontenerowi w pod jest przypisany ten sam adres IP. Tak więc, jak stwierdził Alex Robinson w swojej odpowiedzi , możesz po prostu użyć hostname -i
wewnątrz swojego kontenera, aby uzyskać adres IP poda.
Testowałem z pod działającym dwoma głupimi kontenerami i rzeczywiście hostname -i
wyświetlałem ten sam adres IP w obu kontenerach. Co więcej, ten adres IP był równoważny z uzyskanym przy użyciu kubectl describe pod
z zewnątrz, co potwierdza całość IMO.
Jednak odpowiedź PiersyP wydaje mi się bardziej przejrzysta .
Źródła
Z dokumentów Kubernetes :
Wszystkie aplikacje w podach używają tej samej sieciowej przestrzeni nazw (ten sam adres IP i przestrzeń portów), dzięki czemu mogą „znajdować” się nawzajem i komunikować przy użyciu hosta lokalnego. Z tego powodu aplikacje w podach muszą koordynować wykorzystanie portów. Każda kapsuła ma adres IP w płaskiej współdzielonej przestrzeni sieciowej, która ma pełną komunikację z innymi komputerami fizycznymi i podami w sieci.
Kolejny artykuł z dokumentacji kubernetes :
Do tej pory dokument ten mówił o kontenerach. W rzeczywistości Kubernetes stosuje adresy IP w zakresie Poda - kontenery wewnątrz Poda współdzielą swoje sieciowe przestrzenie nazw - w tym ich adres IP. Oznacza to, że wszystkie kontenery w Podach mogą nawzajem docierać do portów na serwerze lokalnym.
printenv | grep '10.254.24.167'
nie zwraca niczego poza zmienną zdefiniowaną przez użytkownika MY_POD_IP. Tak czy