配置kubectl命令以访问azure上的远程kubernetes集群

Pha*_*aya 24 azure kubernetes

我有一个在azure上运行的kubernetes集群.从本地kubectl命令访问集群的方法是什么.我在这里提到但是在kubernetes主节点上没有kube配置文件.此外,kubectl配置视图导致

apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
Run Code Online (Sandbox Code Playgroud)

Pha*_*aya 48

找到了一种方法来访问远程kubernetes集群而无需ssh到集群中的一个节点.您需要编辑〜/ .kube/config文件,如下所示:

apiVersion: v1 
clusters:    
- cluster:
    server: http://<master-ip>:<port>
  name: test 
contexts:
- context:
    cluster: test
    user: test
  name: test
Run Code Online (Sandbox Code Playgroud)

然后执行以下命令设置上下

kubectl config use-context test
Run Code Online (Sandbox Code Playgroud)

在此之后,您应该能够与群集进行交互.

注意:要添加认证和密钥,请使用以下链接: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
Run Code Online (Sandbox Code Playgroud)

  • kubectl config view --minify --flatten - 通过这个命令我得到了远程集群的配置信息。然后我将此信息复制到我的本地用户的 ~/.kube/config 文件并且它起作用了。 (2认同)

tol*_*uso 8

您还可以通过传入--kubeconfig参数来定义kubeconfig的文件路径.

例如,~/.kube/config远程Kubernetes主机的副本到您的本地项目~/myproject/.kube/config.在~/myproject那你可以通过运行列表中的远程服务器Kubernetes的豆荚kubectl get pods --kubeconfig ./.kube/config.

请注意,从远程Kubernetes服务器复制值简单kubectl config view是不够的,因为它不会显示配置文件的秘密.相反,你必须做类似的事情cat ~/.kube/configscp用来获取完整的文件内容.

请参阅:https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/


pol*_*ata 8

对于任何遇到这个问题的人,azcli 解决了这个问题。

az aks get-credentials --name MyManagedCluster --resource-group MyResourceGroup
Run Code Online (Sandbox Code Playgroud)

这将合并本地 .kube\config 中的 Azure 上下文(如果你已经建立了连接,我的是C:\Users\[user]\.kube\config)并切换到 Azure Kubernetes 服务连接。

参考


Gaj*_*mbi 5

在您的 k8s 机器上找到 .kube 目录。
在 linux/Unix 上,它将位于 /root/.kube
在 Windows 上,它将位于 C:/User//.kube
将配置文件从 k8s 集群的 .kube 文件夹
复制到本地机器的 .kube 文件夹复制客户端-certificate: /etc/cfc/conf/kubecfg.crt
client-key: /etc/cfc/conf/kubecfg.key
到本地机器的 .kube 文件夹。
编辑本地机器 .kube 文件夹中的配置文件,更新本地机器上 kubecfg.crt 和 kubecfg.key 的路径。
/etc/cfc/conf/kubecfg.crt --> C:\Users\.kube\kubecfg.crt
/etc/cfc/conf/kubecfg.key --> C:\Users\.kube\kubecfg.key
现在您应该能够与集群进行交互。运行“kubectl get pods”,您将看到 k8s 集群上的 pod。