WSL终端执行kubectl提示not found但Ubuntu终端可用如何解决?
问题原因
你当前WSL的默认启动发行版为docker-desktop(从你提供的wsl --list --verbose输出可以看到该发行版前有*标记),这是Docker Desktop生成的专用底层环境,未预装kubectl,也不适合作为日常操作环境使用。你之前安装的kubectl、docker相关配置都在Ubuntu-20.04发行版中,因此直接打开Ubuntu终端可以正常调用命令,直接启动WSL终端进入的是默认的docker-desktop环境,所以会提示命令不存在。
解决方法
临时指定进入Ubuntu环境
每次启动WSL时执行如下命令即可进入已配置好工具的Ubuntu环境:
也可以直接在Windows终端的下拉选项中选择wsl -d Ubuntu-20.04Ubuntu-20.04直接启动对应环境。永久修改WSL默认发行版
在PowerShell中执行如下命令,将Ubuntu-20.04设置为默认启动的WSL发行版:
修改完成后,后续直接打开WSL终端就会默认进入Ubuntu环境,可直接调用已安装的kubectl命令。wsl --set-default Ubuntu-20.04
如果要在Ubuntu的WSL环境中正常使用docker命令,需要额外开启Docker Desktop的WSL集成:打开Docker Desktop设置 -> 资源 -> WSL集成,打开Ubuntu-20.04对应的开关,重启Docker Desktop后即可生效。
关于功能是否默认可用的说明
按照官方WSL安装文档完成操作后,不会默认自带docker、kubectl这类第三方工具。这两个工具需要你在对应使用的WSL发行版中单独安装,或开启Docker Desktop的WSL集成功能后才可使用,不属于WSL默认内置的功能。
内容的提问来源于stack exchange,提问作者Michu93
相关产品推荐
相关产品推荐

