【问题标题】:Docker-Desktop context select not updating the kubectl active contextDocker-Desktop 上下文选择不更新 kubectl 活动上下文
【发布时间】:2021-10-14 05:42:32
【问题描述】:

我正在运行带有 WSL2 集成的 Docker Desktop for Windows。我也在运行 minikube。 Docker 桌面 GUI 正确显示了两个已知的上下文:

我选择了“minikube”上下文,因为这是我想要使用的上下文。

但是,当我进入 WSL 终端并运行 kubectl config get-contexts 时,我只能看到 docker-desktop 上下文,即活动上下文:

admin@RODDY01-PC:/mnt/c/workspace$ kubectl config get-contexts
CURRENT   NAME             CLUSTER          AUTHINFO         NAMESPACE
*         docker-desktop   docker-desktop   docker-desktop

运行 which kubectl 表明我正在使用 docker-desktop 在进行 WSL 集成时安装的 kubectl:

admin@RODDY01-PC:/mnt/c/workspace$ which kubectl
/usr/local/bin/kubectl

admin@RODDY01-PC:/mnt/c/workspace$ ls -la /usr/local/bin/kubectl
lrwxrwxrwx 1 root root 55 Aug  1 17:49 /usr/local/bin/kubectl -> /mnt/wsl/docker-desktop/cli-tools/usr/local/bin/kubectl

(在 Windows 中,kubectl 在C:\Program Files\Docker\Docker\resources\bin\kubectl.exe 捆绑为 docker 的一部分,它正确显示了两个上下文并指示 minikube 是活动的;它只是 Linux/WSL2 kubectl 实例没有更新/识别活动和可用的上下文.)

如何让 Docker Desktop 正确更新 WSL2 中的 kubectl 活动上下文?

版本信息:Docker Desktop 3.5.2;视窗 10 专业版; WSL2 上的 Debian 10。

【问题讨论】:

    标签: kubectl docker-desktop


    【解决方案1】:

    问题原来是我实际上有 两个 kube 配置文件。

    由 GUI 正确更新的 Windows 的配置位于:C:\Users\<username\.kube\config

    WSL 也有一个,~/.kube/config。这个不是最新的,实际上缺少整个 minikube 上下文定义。

    我通过在我的~/.bashrc 文件中设置一个环境变量来将$KUBECONFIG 指向Windows kube 配置文件来解决这个问题。我的一位同事遇到了类似的问题,而是删除了 linux 文件并创建了指向 Windows 的符号链接;两种解决方案都有效。


    切向相关:minikube 配置包括在配置文件中使用 Windows 样式路径的证书;有必要将这些证书嵌入到配置文件中,以便它们能够跨操作系统正常工作。

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 2019-10-27
      • 2019-10-11
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多