【问题标题】:How to upgrade kubectl client version如何升级 kubectl 客户端版本
【发布时间】:2019-05-11 02:04:38
【问题描述】:

我想将 kubectl 客户端版本升级到 1.11.3。

我执行了brew install kubernetes-cli,但版本似乎没有更新。

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.7", GitCommit:"0c38c362511b20a098d7cd855f1314dad92c2780", GitTreeState:"clean", BuildDate:"2018-08-20T10:09:03Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.4", GitCommit:"bf9a868e8ea3d3a8fa53cbb22f566771b3f8068b", GitTreeState:"clean", BuildDate:"2018-10-25T19:06:30Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

我正在尝试通过运行此命令来获取单元格的日志。

kubectl logs -l groupname/cell=my-cell --all-containers=true

这适用于具有客户端版本 1.11.3 的虚拟机。但是在我的 mac 中,它给了我一个错误,说 --all-containers=true 标志不适用于 kubectl logs 命令。

【问题讨论】:

    标签: macos kubernetes homebrew kubectl


    【解决方案1】:

    安装特定版本的kubectl

    curl -LO https://storage.googleapis.com/kubernetes-release/release/<specific-kubectl-version>/bin/darwin/amd64/kubectl

    对于您的情况,如果您想安装版本 v1.11.3,请将 specific-kubectl-version 替换为 v1.11.3

    然后使这个二进制可执行文件

    chmod +x ./kubectl
    

    然后将此二进制文件移动到您的PATH

    sudo mv ./kubectl $(which kubectl)
    

    【讨论】:

    • 我已经安装了更高版本。如果我需要降级,那我该怎么做?
    • 使用特定版本下载。 curl -LO storage.googleapis.com/kubernetes-release/release&lt;your-desire-version&gt;/bin/darwin/amd64/kubectl
    • 也可以使用curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"自动下载最新版本
    【解决方案2】:

    如果您使用brew 安装它,则只需运行brew upgrade kubernetes-cli

    【讨论】:

    • 您可能会收到类似“kubernetes-cli x.x.x 已安装,只是未链接”之类的警告。只需按照提示覆盖链接即可。消息/警告非常有帮助
    【解决方案3】:

    所以,在 mac 上升级 kubectl:

    brew upgrade kubectl
    

    那么你可能需要:

    brew link --overwrite kubernetes-cli
    

    【讨论】:

    • 如果你运行了“brew upgrade kubectl”并得到消息“kubernetes-cli xxx is already installed”然后,使用“brew link --overwrite kubernetes-cli”来处理哦,救命~
    【解决方案4】:

    我使用 google-cloud-sdk 安装了 kubectl。所以在我的路径中,kubectl 指向这个位置。这就是版本没有更新的原因。在我从路径中删除它后,Kubectl 得到了更新。

    【讨论】:

      【解决方案5】:

      如果您按照 Kubernetes 安装页面 https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos 上的详细安装指南,在 MacOS X 上安装或升级 kubectl 服务器和客户端的版本非常容易

      希望对你有帮助:)

      【讨论】:

        【解决方案6】:

        通过巧克力:

        choco upgrade kubernetes-cli
        

        【讨论】:

        • 如果你想安装特定版本choco upgrade kubernetes-cli --version=1.19.5
        【解决方案7】:

        类似于博拉斯所说的。您看到的版本来自另一个 kubectl.exe 安装。我安装了 docker for windows,它已经有 kubectl.exe(位于 Docker\resources\bin 中)并且版本较旧。除非您明确提供 kubectl.exe 新位置的路径 [您需要在 PATH 中设置它],否则将使用此方法。

        【讨论】:

        • 这解决了我的问题。当我为新的 kubectl 可执行文件指定路径时,为什么使用 docker 资源文件夹中的 kubectl?
        【解决方案8】:

        第 1 步 - 下载最新或特定版本的 kubectl 二进制文件

        参考:https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/#install-kubectl-binary-with-curl-on-macos

        Downloads$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
        
          % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                         Dload  Upload   Total   Spent    Left  Speed
        100   154  100   154    0     0    583      0 --:--:-- --:--:-- --:--:--   583
        100 50.6M  100 50.6M    0     0  9159k      0  0:00:05  0:00:05 --:--:-- 10.8M
        

        第 2 步:旧版本

        ➜  Downloads$ kubectl version
        Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"darwin/amd64"}
        

        第 3 步:旧 kubectl 版本位置:

        ➜  Downloads$ which kubectl
        /usr/local/bin/kubectl
        

        第 4 步:将新版本移动到该位置:

        ➜  Downloads$ sudo mv kubectl /usr/local/bin/.
        Password:
        

        第 5 步:为 kubectl 二进制文件分配权限

        ➜  Downloads$ kubectl version
        zsh: permission denied: kubectl
        ➜  Downloads sudo chmod 755 /usr/local/bin/kubectl 
        

        第6步:检查新版本

        ➜  Downloads$ kubectl version                      
        Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:45:37Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"darwin/amd64"}
        

        【讨论】:

          【解决方案9】:

          我的 docker 桌面使用了旧版本的 kubectl。安装gcloud components install kubectl 后,安装程序会发出警告,提示您过时的kubectl 版本的位置:

          警告:有旧版本的 Google Cloud Platform 工具 你的系统路径。请删除以下内容,以免意外 调用这些旧工具:

          /Applications/Docker.app/Contents/Resources/bin/kubectl

          我已经删除了文件夹,kubectl 运行良好。

          【讨论】:

            【解决方案10】:

            认为这对使用 aws kubectl 的任何人都有帮助。

            在从 aws 下载 kubectl 时遇到问题后,我来到了这里。 kubectl 安装失败,因为我的机器中有 kubectl。

            删除后,可以从 aws 安装 kubectl 1.15.11。

            lrwxr-xr-x  1 root      admin      55 Jan 11 17:49 kubectl.docker -> /Applications/Docker.app/Contents/Resources/bin/kubectl
            lrwxr-xr-x  1 root      admin      55 Jan 11 17:49 kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl 
            

            【讨论】:

              猜你喜欢
              • 2021-10-10
              • 1970-01-01
              • 2023-02-04
              • 1970-01-01
              • 2023-03-31
              • 1970-01-01
              • 2021-12-22
              • 2014-06-12
              • 1970-01-01
              相关资源
              最近更新 更多