kubernetes 删除后取回docker-for-windows Kuberentes kubeconfig文件

8mmmxcuj  于 11个月前  发布在  Kubernetes
关注(0)|答案(4)|浏览(124)

我的Docker for Windows ~/.kube/config文件在设置访问基于云的K8s集群时被替换。
有没有一种方法可以重新创建它,而不必重新启动Docker for Windows Kubernetes?

  • 更新 * 我当前的~/.kube/config文件现在设置为GKE集群。我不想重置Docker for Kubernetes并将其删除。相反,我想为Docker for Windows创建一个单独的kubeconfig文件,即将其放置在其他位置而不是~/.kube/config
6qftjkof

6qftjkof1#

您可能希望备份GKE的~/.kube/config,然后在Docker for Windows上禁用/重新启用Kubernetes。调出Windows命令提示符:

copy \<where-your-.kube-is\config \<where-your-.kube-is\config.bak

字符串
然后按照this操作。本质上,取消复选框,等待几分钟,然后再检查一次。
x1c 0d1x的数据
您可以在Docker上重新创建,而无需禁用/重新启用Kubernetes,但您必须确切知道您的API服务器和凭据(证书等)的位置:

kubectl config set-context ...
 kubectl config use-context ...


奇怪的是,您指定的是~/.kube/config,其中~(波浪号)是unix/Linux的东西,但也许您的意思是$HOME

wz3gfoph

wz3gfoph2#

我只是想补充一下,如果你像我一样使用wsl作为kubectl/docker客户端,你可以在C:\Users\username.kube\config中找到你的本地kubernetes配置。
然后你可以使用它来create a new kubernetes context for docker
例如:cp /mnt/c/Users/username/.kube/config ~/.kube/docker-k8s.config
docker context create local-k8s --default-stack-orchestrator=kubernetes --kubernetes config-file=/home/username/.kube/docker-k8s.config --docker host=tcp://localhost:2375

**注意:**我已经公开了2375端口的docker引擎,unix sock连接类型的默认设置可以在上面的链接中找到。您需要添加kubeconfig的绝对路径,不能使用''。

然后,您可以使用docker context use <context name>在本地docker-desktop kubernetes集群和外部云env集群之间进行切换。
docker context ls将显示本地现有上下文。

8fq7wneg

8fq7wneg3#

你基本上想访问多个集群。一个选择是使用KUBECONFIG环境变量. Here is the documentation
KUBECONFIG环境变量是配置文件的路径列表。对于Linux和Mac,该列表以冒号分隔,对于Windows,则以冒号分隔。如果您有KUBECONFIG环境变量,请熟悉列表中的配置文件。
或者,您可以提供一个内联选项。

kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer
kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer
kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter

字符串
然后使用use-context

3bygqnnd

3bygqnnd4#

我以为我的配置文件被删除了,但我的问题是,我使用Azure CLI连接到Azure AKS集群,它更改了我的默认上下文,所以要切换到Docker桌面集群,我做了以下操作:

第一步:判断当前上下文

kubectl config current-context

字符串
如果它吐出docker-desktop以外的任何内容,请使用此命令列出所有可用的上下文:

kubectl config get-contexts

第二步:切换上下文

根据上面列出的上下文,您应该看到docker-desktop作为一个选项。如果没有,请按照Rico的说明卸载并重新安装Kubernetes for Docker Desktop;否则,切换上下文:

kubectl config use-context docker-desktop

注意事项

  • 您也可以使用此过程切换回上一个上下文,因此在我的示例中,我可以切换回我的Azure AKS集群。
  • 在Windows上,所有这些群集名称都位于config文件中的C:\Users\[YourIdHere]\.kube目录中(沿着连接到群集所需的证书和其他数据)。

相关问题