删除Windows的docker-for-Windows Kuberentes kubeconfig文件

时间:2019-02-17 15:29:33

标签: kubernetes docker-for-windows

设置对基于云的K8s集群的访问权限时,我的Windows Docker ~/.kube/config文件已被替换。

是否有一种方法可以重新创建它,而不必重新启动适用于Windows Kubernetes的Docker?

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

3 个答案:

答案 0 :(得分:2)

您可能想要备份~/.kube/config以获得GKE,然后在Docker for Windows上禁用/重新启用Kubernetes。拉出Windows命令提示符:

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

然后跟随this。本质上,取消选中该复选框,等待几分钟,然后再次检查。

docker for windows

您可以在不禁用或重新启用Docker上的Kubernetes的情况下进行重新创建,但是您必须确切知道API服务器和凭据(证书等)的位置:

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

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

答案 1 :(得分:0)

您基本上想访问多个集群。一种选择是使用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

答案 2 :(得分:0)

如果您将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引擎。unixsock类型的连接的默认设置可以在上面的链接中找到。您需要将绝对路径添加到kubeconfig,不能使用'〜'。

然后,您可以使用docker context use <context name>通过docker客户端在本地docker-desktop kubernetes集群和外部云环境集群之间进行切换。

docker context ls将显示本地现有上下文。