Beberapa klarifikasi (bukan jawaban yang sebenarnya)
Di kubernetes, setiap pod diberi alamat IP, dan setiap container di pod diberi alamat IP yang sama. Jadi, seperti yang dinyatakan Alex Robinson dalam jawabannya , Anda bisa menggunakan hostname -i
di dalam container Anda untuk mendapatkan alamat IP pod.
Saya menguji dengan pod yang menjalankan dua kontainer bodoh, dan memang hostname -i
mengeluarkan alamat IP yang sama di dalam kedua kontainer. Selain itu, IP itu setara dengan yang diperoleh menggunakan kubectl describe pod
dari luar, yang memvalidasi semuanya IMO.
Namun, jawaban PiersyP tampaknya lebih bersih bagi saya.
Sumber
Dari kubernetes docs :
Semua aplikasi di dalam pod menggunakan namespace jaringan yang sama (IP dan ruang port yang sama), dan dengan demikian dapat “menemukan” satu sama lain dan berkomunikasi menggunakan localhost. Karenanya, aplikasi di dalam pod harus mengoordinasikan penggunaan portnya. Setiap pod memiliki alamat IP dalam ruang jaringan bersama yang datar yang memiliki komunikasi penuh dengan komputer fisik dan pod lain di seluruh jaringan.
Bagian lain dari kubernetes docs :
Sampai saat ini dokumen tersebut telah membahas tentang container. Pada kenyataannya, Kubernetes menerapkan alamat IP di lingkup Pod - container di dalam Pod membagikan namespace jaringan mereka - termasuk alamat IP-nya. Ini berarti bahwa kontainer dalam sebuah Pod dapat menjangkau port satu sama lain di localhost.
printenv | grep '10.254.24.167'
tidak mengembalikan apa pun kecuali variabel yang ditentukan pengguna MY_POD_IP. Pokoknya, ambil suaraku Pak :)