更新gcloud后,我得到这个警告,但我该怎么做(我应该删除Docker)?
WARNING: There are older versions of Google Cloud Platform tools on your system PATH.
Please remove the following to avoid accidentally invoking these old tools:
/Applications/Docker.app/Contents/Resources/bin/kubectl
我在我的.zshrc中有这个:
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/<NAME>/google-cloud-sdk/path.zsh.inc' ]; then source '/Users/<NAME>/google-cloud-sdk/path.zsh.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/Users/<NAME>/google-cloud-sdk/completion.zsh.inc' ]; then source '/Users/<NAME>/google-cloud-sdk/completion.zsh.inc'; fi
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
5条答案
按热度按时间qoefvg9y1#
这是因为docker-for-mac为kubectl安装了一个bin,而gcloud-sdk也为
gcloud components install kubectl
安装了另一个bin。我的建议是从gcloud中卸载kubectl作为组件,覆盖docker-for-mac中的符号链接,并且只使用homebrew安装的bin。
请尝试以下命令:
gcloud components remove kubectl
brew install kubernetes-cli
brew link --overwrite kubernetes-cli
kyxcudwk2#
顶级域名注册商
/usr/local/bin/kubectl
是Docker安装的链接:ls -l /usr/local/bin/kubectl
=〉/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
。删除链接没有副作用,并且解决了冲突:rm /usr/local/bin/kubectl
理由
该冲突与Docker提供的
kubectl
版本冲突,因此有必要查看Docker文档对此的看法。https://docs.docker.com/desktop/kubernetes/#use-the-kubectl-command摘录:
如果您使用Homebrew或其他方法安装了kubectl,并且遇到冲突,请删除/usr/local/bin/kubectl。
vybvopom3#
下面是我的例子,你可以参考。运行
gcloud components update
后,我得到了这个警告:警告:您的系统路径中存在旧版本的Google Cloud Platform工具。请删除以下内容以避免意外调用这些旧工具:
/usr/local/储存格/kubernetes-cli/1.10.2/bin/kubectl
我使用
brew list
检查此工具在阅读了文档后,我决定卸载
kubernetes-cli
及其依赖项kops
,kube-ps1
和kubectx
以避免冲突。这个警告消失了。
bbuxkriu4#
我只是进入了Docker文件的bin文件夹,把kubectl移到了垃圾桶里。
ftf50wuq5#
执行
echo $PATH
并检查哪个文件夹优先。在我的例子中,它类似于.../Users/myname/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:...
。在这里,gcloud中的kubectl实际上在Docker Desktop中的kubectl之前(在/usr/local/bin/kubectl
中),所以没有问题。如果这也是你的例子,你不需要做任何事情。当然,如果你想完全消除混乱,你可以只删除链接
/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
,或重命名它。更新日期:
在最近的docker桌面版本中,他们实际上提供了另一个链接
/usr/local/bin/kubectl.docker -> /Applications/Docker.app/Contents/Resources/bin/kubectl
,以区别于其他kubectl,所以简单地删除链接/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
并不是一个坏主意。