Một số làm rõ (không thực sự là một câu trả lời)
Trong kubernetes, mọi nhóm được gán một địa chỉ IP và mọi vùng chứa trong nhóm sẽ được gán cùng một địa chỉ IP đó. Do đó, như Alex Robinson đã nêu trong câu trả lời của mình , bạn chỉ có thể sử dụng hostname -i
bên trong vùng chứa của mình để lấy địa chỉ IP nhóm.
Tôi đã thử nghiệm với một nhóm chạy hai vùng chứa câm và thực sự hostname -i
đang xuất cùng một địa chỉ IP bên trong cả hai vùng chứa. Hơn nữa, IP đó tương đương với IP có được bằng cách sử dụng kubectl describe pod
từ bên ngoài, xác nhận toàn bộ IMO.
Tuy nhiên, câu trả lời của PiersyP có vẻ rõ ràng hơn đối với tôi.
Nguồn
Từ tài liệu kubernetes :
Các ứng dụng trong một nhóm đều sử dụng cùng một không gian tên mạng (cùng một IP và không gian cổng), do đó có thể “tìm thấy” nhau và giao tiếp bằng cách sử dụng localhost. Do đó, các ứng dụng trong một nhóm phải điều phối việc sử dụng các cổng của chúng. Mỗi nhóm có một địa chỉ IP trong không gian mạng chia sẻ phẳng có giao tiếp đầy đủ với các máy tính và nhóm vật lý khác trên toàn mạng.
Một đoạn khác từ tài liệu kubernetes :
Cho đến nay tài liệu này đã nói về container. Trên thực tế, Kubernetes áp dụng địa chỉ IP ở phạm vi Pod - các vùng chứa trong Pod chia sẻ không gian tên mạng của chúng - bao gồm cả địa chỉ IP của chúng. Điều này có nghĩa là các container trong Pod đều có thể đến được các cổng của nhau trên localhost.
printenv | grep '10.254.24.167'
không trả về bất kỳ thứ gì ngoại trừ biến MY_POD_IP do người dùng xác định. Dù sao, hãy lấy phiếu bầu của tôi thưa ngài :)