Windows10下WSL Ubuntu控制台无法连接AKS集群但PowerShell正常
问题根因
你使用的WSL Ubuntu 18.04属于独立的Linux子系统环境,文件系统、环境变量默认与Windows宿主机隔离:
- Windows侧PowerShell默认读取
C:\Users\XXX\.kube\config作为kubectl配置,所以运行正常 - WSL Ubuntu侧的kubectl默认读取当前Linux用户目录下的
~/.kube/config,你之前执行az aks get-credentials生成的配置存放在Windows侧,WSL侧无法读取,kubectl找不到集群配置就会默认尝试连接本地8080端口的集群,抛出对应报错。
解决方法
你可以任选以下一种方案操作:
方案1:同步Windows侧配置到WSL
- 复制Windows配置到WSL的kube目录(将下方
XXX替换为你的Windows用户名):cp /mnt/c/Users/XXX/.kube/config ~/.kube/config - 给配置文件设置正确权限,避免kubectl抛出权限警告:
chmod 600 ~/.kube/config - 执行
kubectl config get-contexts验证,能看到AKS集群上下文即为配置成功。
方案2:直接在WSL侧重新生成配置
- 先确保WSL Ubuntu中已经安装az cli,在WSL终端内重新执行登录和凭证拉取命令:
az login az aks get-credentials --resource-group <resource_group_name> --name <cluster_name> - 命令执行完成后会自动在WSL侧的
~/.kube目录下生成配置文件,直接即可使用kubectl命令。
可选持久化配置(无需重复同步)
如果希望WSL侧永久共享Windows侧的kube配置,不用每次同步,可以配置环境变量直接指向Windows配置文件:
- 打开WSL侧的
~/.bashrc文件,在末尾添加如下内容(将XXX替换为你的Windows用户名):export KUBECONFIG=/mnt/c/Users/XXX/.kube/config - 执行
source ~/.bashrc使配置立即生效,后续WSL启动时会自动读取Windows侧的kube配置。
内容的提问来源于stack exchange,提问作者user584018
相关产品推荐
相关产品推荐

