好的,我在 Mac 上通过以下方式安装了 kubectl: 1)使用homebrew安装gcloud 2)使用 gcloud 组件安装安装了 kubectl。
我想运行一个直接调用 kubectl 的 shell 脚本。但是,我收到错误。 $ kubectl 版本 -bash:kubectl:找不到命令
我期望 gcloud 组件安装来设置路径变量,以便我可以调用 kubectl。看起来那件事还没有发生。我在我的 mac 中搜索 kubectl 但没有找到它。
如何让 kubectl 从命令行工作?
简短回答:
在 macOS 上,您可能需要添加符号链接:
sudo ln -s $(brew --prefix)/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/kubectl /usr/local/bin/kubectl
长答案:
我相信这是通过 homebrew 安装 kubectl,然后通过 gcloud,然后卸载 homebrew 托管工具造成的。 homebrew 将删除其符号链接,但即使您重新安装 kubectl,gcloud 也不会将其添加回来。
查看这是否对 macOS 产生影响:
查看gcloud是否安装了kubectl:
gcloud info | grep -i kubectl
kubectl: [2019.05.31] Kubectl on PATH: [False]
kubectl: [2019.05.31] Kubectl on PATH: [/usr/local/bin/kubectl] /usr/local/bin/kubectl
检查符号链接:
ls -la /usr/local/bin | grep -i google-cloud-sdk
。这将显示您到谷歌云二进制文件的链接。
kubectl
不在列表中,则运行 sudo ln -s $(brew --prefix)/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/kubectl /usr/local/bin/kubectl
gcloud info
命令将告诉您 kubectl 是否安装以及安装位置。
根据 https://kubernetes.io/docs/tasks/tools/install-kubectl/,您可以使用
kubectl
安装 brew install kubernetes-cli
。或者,您可以按照 https://cloud.google.com/sdk/docs/quickstart-macos 安装 Google Cloud SDK,然后使用 kubectl
安装 gcloud components install kubectl
。
只是为了更新并增加更多清晰度:
如果您没有通过
Homebrew安装
kubectl
但选择这样做
gcloud components install kubectl
然后,二进制文件将安装在 gcloud 安装文件夹的
bin
文件夹中。即使您的 gcloud bin
文件夹已经位于 shell 的 PATH
上,它也不会立即看到 kubectl
,除非您启动一个新 shell 或运行 hash -r
(bash / zsh) 告诉您的 shell 放弃其缓存路径。
感谢@mark,我能够解决这个问题,但我觉得修改
$PATH
是更好的方法。我还发现 Caskroom
文件夹位于不同的位置。所以我建议将其添加到相关的 rc 文件中:
export PATH="`brew --prefix`/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin:$PATH"