2016-03-30 135 views

回答

16

找到一種方法來訪問遠程kubernetes羣集,而不需要向羣集中的某個節點發送ssh。您需要編輯〜/ .kube /配置如下文件:通過執行

apiVersion: v1 
clusters:  
- cluster: 
    server: http://<master-ip>:<port> 
    name: test 
contexts: 
- context: 
    cluster: test 
    user: test 
    name: test 

然後設置背景:

kubectl config use-context test 

在這之後,你應該能夠與集羣進行交互。

注意:要添加認證和下面的鏈接鍵的使用:http://kubernetes.io/docs/user-guide/kubeconfig-file/

或者,你也可以嘗試下面的命令

kubectl config set-cluster test-cluster --server=http://<master-ip>:<port> --api-version=v1 
kubectl config use-context test-cluster 
0

您是如何設置您的羣集的?要遠程訪問集羣,您需要一個kubeconfig文件(它看起來像沒有),並且安裝腳本生成一個本地kubeconfig文件作爲集羣部署過程的一部分(因爲否則剛部署的集羣不可用) 。如果其他人部署了羣集,則應按照鏈接頁面上的說明獲取所需客戶端憑據的副本以連接到羣集。

+0

我使用下面的鏈接,彈出一個集羣http://kubernetes.io/docs/getting-started-guides/coreos/azure /但找不到kubeconfig文件的指針。 –

+1

通讀本示例,它看起來像演練,您可以在主節點上運行'kubectl'命令。你能登錄到master並嘗試運行那裏的命令嗎? –

+0

是的,我可以從主節點訪問集羣。但是我需要幫助遠程訪問它(不需要ssh主控節點)。 –

0

Azure的設置只公開了SSH端口外。 這可以在./output/kube_xxxxxxxxxx_ssh_conf 下找到。我所做的就是通過添加一個ssh端口隧道來隧道SSH,以便在我的機器上使用。 走進上面的文件,並在「主機*」部分添加另一條線,如波紋管:

LocalForward 8080 127.0.0.1:8080

它映射在我的本地機的8080端口(其中kubectl搜索默認上下文)發送到遠程機器8080端口,其中主設備監聽api呼叫。 當你打開ssh到kube-00時,正常的文檔顯示,現在可以在沒有任何額外配置的情況下從你的本地kubectl進行調用。

2

您還可以通過傳入--kubeconfig參數來定義kubeconfig的文件路徑。

例如,將遠程Kubernetes主機的~/.kube/config複製到本地項目的~/myproject/.kube/config。在~/myproject中,您可以通過運行kubectl get pods --kubeconfig ./.kube/config列出遠程Kubernetes服務器的容器。

請注意,從遠程Kubernetes服務器複製簡單的kubectl config view的值不夠,因爲它不會顯示配置文件的祕密。相反,您必須執行類似cat ~/.kube/config或使用scp來獲取完整的文件內容。

參見:https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/