我的Docker for Windows ~/.kube/config
文件在设置访问基于云的K8s集群时被替换。
有没有一种方法可以重新创建它,而不必重新启动Docker for Windows Kubernetes?
- 更新 * 我当前的
~/.kube/config
文件现在设置为GKE集群。我不想重置Docker for Kubernetes并将其删除。相反,我想为Docker for Windows创建一个单独的kubeconfig文件,即将其放置在其他位置而不是~/.kube/config
。
4条答案
按热度按时间6qftjkof1#
您可能希望备份GKE的
~/.kube/config
,然后在Docker for Windows上禁用/重新启用Kubernetes。调出Windows命令提示符:字符串
然后按照this操作。本质上,取消复选框,等待几分钟,然后再检查一次。
x1c 0d1x的数据
您可以在Docker上重新创建,而无需禁用/重新启用Kubernetes,但您必须确切知道您的API服务器和凭据(证书等)的位置:
型
奇怪的是,您指定的是
~/.kube/config
,其中~
(波浪号)是unix/Linux的东西,但也许您的意思是$HOME
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
将显示本地现有上下文。8fq7wneg3#
你基本上想访问多个集群。一个选择是使用
KUBECONFIG
环境变量. Here is the documentation。KUBECONFIG环境变量是配置文件的路径列表。对于Linux和Mac,该列表以冒号分隔,对于Windows,则以冒号分隔。如果您有KUBECONFIG环境变量,请熟悉列表中的配置文件。
或者,您可以提供一个内联选项。
字符串
然后使用
use-context
3bygqnnd4#
我以为我的配置文件被删除了,但我的问题是,我使用Azure CLI连接到Azure AKS集群,它更改了我的默认上下文,所以要切换到Docker桌面集群,我做了以下操作:
第一步:判断当前上下文
字符串
如果它吐出
docker-desktop
以外的任何内容,请使用此命令列出所有可用的上下文:型
第二步:切换上下文
根据上面列出的上下文,您应该看到
docker-desktop
作为一个选项。如果没有,请按照Rico的说明卸载并重新安装Kubernetes for Docker Desktop;否则,切换上下文:型
注意事项
config
文件中的C:\Users\[YourIdHere]\.kube
目录中(沿着连接到群集所需的证书和其他数据)。