Docker-桌面上下文 select 未更新 kubectl 活动上下文

Docker-Desktop context select not updating the kubectl active context

我正在 运行宁 Docker 桌面 Windows 与 WSL2 集成。我也是 运行ning minikube。 Docker 桌面 GUI 正确显示了两个已知上下文:

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

然而,当我进入 WSL 终端和 运行 kubectl config get-contexts 时,我只能看到 docker-桌面上下文,这是活动的:

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 不是 updating/recognizing 活动和可用上下文的 kubectl 实例。)

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

版本信息:Docker桌面版 3.5.2; Windows 10名专业人士; WSL2 上的 Debian 10。

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

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

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

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


切线相关:minikube 配置包括在配置文件中使用 Windows 样式路径的证书;有必要将这些证书嵌入到配置文件中,以便它们能够跨 OS.

正常工作