想知道是否有办法从我在POD中运行的应用程序中识别主IP地址(API服务器主机和端口)。 (假设我创建了一个kubernetes集群A,主公共IP地址为xxxx;我在属于该集群A的kubernetes minion上创建了一个包含我的app(比如golang或J2ee)的pod。来自在集群上运行的App进程一个小兵,我们想知道那个大师的公共IP地址(xxxx))
我没有找到相同的环境变量。
任何人都可以提供帮助吗?。
答案 0 :(得分:2)
api服务通过k8s服务公开。您需要使用API来访问服务配置。您可以通过服务端点访问API(地址在env变量中),但您必须拥有必要的信誉才能执行任何有用的操作。它们位于/var/run/secrets/kubernetes.io
的子目录中,具体取决于您的pod正在运行的服务帐户。您可以通过https直接访问端点,也可以在pod中运行代理。请参阅http://kubernetes.io/docs/user-guide/accessing-the-cluster/#accessing-the-api-from-a-pod。
https://stackoverflow.com/a/30739416/191215中提供了使用curl
命中API服务器的示例。
您想要的api端点是/api/v1/endpoints
。查找item
metadata.name
kubernetes
的{{1}}。外部端点应该是subsets
addresses
之一。
我相信所有k8s实现都是如此,但只在GKE和docker-machine
上进行了测试。
答案 1 :(得分:0)
DNS名称kubernetes
应解析为将路由到主服务器的虚拟IP地址,以便您可以访问许可证。