想知道部署在POD中的应用程序中的Kubernetes API服务器主机

时间:2016-03-18 04:54:56

标签: kubernetes

想知道是否有办法从我在POD中运行的应用程序中识别主IP地址(API服务器主机和端口)。 (假设我创建了一个kubernetes集群A,主公共IP地址为xxxx;我在属于该集群A的kubernetes minion上创建了一个包含我的app(比如golang或J2ee)的pod。来自在集群上运行的App进程一个小兵,我们想知道那个大师的公共IP地址(xxxx))

我没有找到相同的环境变量。

任何人都可以提供帮助吗?。

2 个答案:

答案 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地址,以便您可以访问许可证。