我有一個在azure上運行的kubernetes集羣。從本地kubectl命令訪問集羣的方式是什麼?我提到here,但在kubernetes主節點上沒有kube配置文件。此外,kubectl配置查看結果配置kubectl命令以訪問azure上的遠程kubernetes集羣
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
我有一個在azure上運行的kubernetes集羣。從本地kubectl命令訪問集羣的方式是什麼?我提到here,但在kubernetes主節點上沒有kube配置文件。此外,kubectl配置查看結果配置kubectl命令以訪問azure上的遠程kubernetes集羣
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
找到一種方法來訪問遠程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
您是如何設置您的羣集的?要遠程訪問集羣,您需要一個kubeconfig文件(它看起來像沒有),並且安裝腳本生成一個本地kubeconfig文件作爲集羣部署過程的一部分(因爲否則剛部署的集羣不可用) 。如果其他人部署了羣集,則應按照鏈接頁面上的說明獲取所需客戶端憑據的副本以連接到羣集。
Azure的設置只公開了SSH端口外。 這可以在./output/kube_xxxxxxxxxx_ssh_conf 下找到。我所做的就是通過添加一個ssh端口隧道來隧道SSH,以便在我的機器上使用。 走進上面的文件,並在「主機*」部分添加另一條線,如波紋管:
LocalForward 8080 127.0.0.1:8080
它映射在我的本地機的8080端口(其中kubectl搜索默認上下文)發送到遠程機器8080端口,其中主設備監聽api呼叫。 當你打開ssh到kube-00時,正常的文檔顯示,現在可以在沒有任何額外配置的情況下從你的本地kubectl進行調用。
您還可以通過傳入--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/
我試圖建立kubectl從我創建的KOPS集羣最初是從一個不同的客戶端上。不知道這是否會在Azure上運行,但它的工作的AWS支持(KOPS)集羣:
kops/kubectl - how do i import state created on a another server?
我使用下面的鏈接,彈出一個集羣http://kubernetes.io/docs/getting-started-guides/coreos/azure /但找不到kubeconfig文件的指針。 –
通讀本示例,它看起來像演練,您可以在主節點上運行'kubectl'命令。你能登錄到master並嘗試運行那裏的命令嗎? –
是的,我可以從主節點訪問集羣。但是我需要幫助遠程訪問它(不需要ssh主控節點)。 –