我在kubernetes中部署了多个容器实例。
容器中的应用程序需要来自pod / node的公共IP。
从部署清单中,我尝试使用以下内容,
但是它们都返回我的节点的私有IP地址而不是公共IP。
有人可以帮助解释status.podIP值的来源吗?它来自节点清单吗?或者从VM / docker配置? 关于如何将公共IP地址放入我的容器的任何建议?
由于
答案 0 :(得分:1)
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";
}
然后使用托管此
的nginx的公共IP调用此端点$ curl <publicipofnginx>/ip
这将使机器的公众进行卷曲调用。
答案 1 :(得分:0)
Kubernetes通过&#34;负载均衡&#34;公开外部/公共IP地址(和端口)。服务。在大多数情况下,容器不需要知道这个外部IP地址;他们只需要监听配置的端口。该服务将确保发送到外部/公共IP的流量路由到您的(希望复制的w / ReplicaSet)容器。请查看以下Kubernetes Service Example。