我有多個部署在kubernetes中的容器實例。如何從kubernetes中的容器獲取公共IP
容器中的應用程序需要來自Pod /節點的公共IP。
從部署清單,我試着用下面
- status.podIP
- spec.nodeName
但他們兩人回到我的節點的私有IP地址,而然後是公共IP。
有人可以幫忙解釋status.podIP值的來源嗎?它來自節點清單嗎?或從VM/docker配置? 關於如何將公共IP地址加入我的容器的任何建議?
謝謝
我有多個部署在kubernetes中的容器實例。如何從kubernetes中的容器獲取公共IP
容器中的應用程序需要來自Pod /節點的公共IP。
從部署清單,我試着用下面
但他們兩人回到我的節點的私有IP地址,而然後是公共IP。
有人可以幫忙解釋status.podIP值的來源嗎?它來自節點清單嗎?或從VM/docker配置? 關於如何將公共IP地址加入我的容器的任何建議?
謝謝
公共IP可能無法通過Kubernetes獲得。但是你可以使用外部服務來查詢IP。
$ curl ipinfo.io/ip
是一種可能的方法。但他們有速度限制。您也可以找到其他選項。下一個選項是設置一個專門的機器上的Nginx服務器下面的配置
location = /ip {
add_header Last-Modified $date_gmt;
add_header Cache-Control 'private no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
default_type text/plain;
return 200 "$remote_addr";
}
,然後使用主辦這次
$ curl <publicipofnginx>/ip
nginx的公共IP調用這個端點這會給的公衆機器捲曲呼叫。
Kubernetes通過「負載均衡」服務暴露外部/公共IP地址(和端口)。在大多數情況下,容器不需要知道這個外部IP地址;他們只需要監聽配置的端口。該服務將確保發送到外部/公共IP的流量路由到您的(希望複製的w/ReplicaSet)容器。請查看以下Kubernetes Service Example。