據我瞭解,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')運行代理,並在您的應用程序容器中通過本地主機連接到該代理。 –