据我了解,KUBE-代理每Kubernetes节点上运行Kubernetes:链接荚KUBE-代理
如果我理解正确的(它是在法师和工作节点上启动),它也是'推荐'的方式来访问该API(请参阅:https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/user-guide/accessing-the-cluster.md#accessing-the-api-from-a-pod)
因此,由于kube-proxy已经在每个节点上运行,因此是使用新kube代理容器启动每个pod的“推荐”方式,或者有可能以某种方式'链接'到正在运行的kube-proxy容器?
我原来是用与$ KUBERNETES_SERVICE_HOST的URL和一个秘密传递,对GKE的凭据, 调用
curl https://$USER:[email protected]${KUBERNETES_SERVICE_HOST}/api/v1/namespaces/${NAMESPACE}/endpoints/${SELECTOR}
和分析的结果,但K8S部署CoreOS集群上我似乎只能够通过TLS和证书进行身份验证,并且链接代理似乎是更好的方式。
所以,我在寻找最有效的/最简单的方法从吊舱连接到API来查找IP由服务提及的另一种吊舱。
任何建议/输入?
感谢Aaron, 我对于如何使用kubectl代理感到困惑:它在本地主机上可用,但对我来说,kubectl是一个命令行工具,我该如何使用侧面汽车的容器? 这个'示例'https://github.com/kubernetes/kubernetes/tree/release-1.0/examples/kubectl-container解释了一下,我希望我的理解正确:kubectl与'-p proxy 8001'参数基本相同作为通过 通过连接的pod使用wget到localhost和8001端口,这意味着kubectl实际上接收HTTP请求并将其转发给api服务器。那是对的吗? – MrE
btw:我知道我可以使用服务名称并利用DNS,但是像HBase这样的服务似乎是通过主机名来引用节点。有一个关于DNS的整个问题线程,它只是被推送,但同时我需要一个替代方案。 – MrE
@MrE这几乎是发生了什么事情。一个容器中的所有容器将基本上共享相同的网络。因此,在一个容器中,您通过长命令cli命令('kubectl proxy')运行代理,并在您的应用程序容器中通过本地主机连接到该代理。 –