使用 gcloud Components install 安装时如何设置 kubectl 的路径?

问题描述 投票:0回答:4

好的,我在 Mac 上通过以下方式安装了 kubectl: 1)使用homebrew安装gcloud 2)使用 gcloud 组件安装安装了 kubectl。

我想运行一个直接调用 kubectl 的 shell 脚本。但是,我收到错误。 $ kubectl 版本 -bash:kubectl:找不到命令

我期望 gcloud 组件安装来设置路径变量,以便我可以调用 kubectl。看起来那件事还没有发生。我在我的 mac 中搜索 kubectl 但没有找到它。

如何让 kubectl 从命令行工作?

shell gcloud kubectl
4个回答
17
投票

简短回答:

在 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

1
投票

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


0
投票

只是为了更新并增加更多清晰度:

如果您没有通过

Homebrew
安装kubectl但选择这样做

gcloud components install kubectl

然后,二进制文件将安装在 gcloud 安装文件夹的

bin
文件夹中。即使您的 gcloud
bin
文件夹已经位于 shell 的
PATH
上,它也不会立即看到
kubectl
,除非您启动一个新 shell 或运行
hash -r
(bash / zsh) 告诉您的 shell 放弃其缓存路径。


0
投票

感谢@mark,我能够解决这个问题,但我觉得修改

$PATH
是更好的方法。我还发现
Caskroom
文件夹位于不同的位置。所以我建议将其添加到相关的 rc 文件中:

export PATH="`brew --prefix`/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin:$PATH"
© www.soinside.com 2019 - 2024. All rights reserved.