我有一个在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)
您还可以通过传入--kubeconfig参数来定义kubeconfig的文件路径.
例如,~/.kube/config远程Kubernetes主机的副本到您的本地项目~/myproject/.kube/config.在~/myproject那你可以通过运行列表中的远程服务器Kubernetes的豆荚kubectl get pods --kubeconfig ./.kube/config.
请注意,从远程Kubernetes服务器复制值简单kubectl config view是不够的,因为它不会显示配置文件的秘密.相反,你必须做类似的事情cat ~/.kube/config或scp用来获取完整的文件内容.
请参阅:https://kubernetes.io/docs/tasks/administer-cluster/share-configuration/
对于任何遇到这个问题的人,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 服务连接。
在您的 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。
| 归档时间: |
|
| 查看次数: |
50818 次 |
| 最近记录: |