【问题标题】:Kubernetes - Kubectl version command returns errorKubernetes - Kubectl 版本命令返回错误
【发布时间】:2020-01-16 18:57:59
【问题描述】:

Mac

我只是通过以下方式安装 kubectl:https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos

MacBook-Air:~ admin$ kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"darwin/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

可能是什么问题,有什么想法吗?

【问题讨论】:

  • 如果您还没有 K8s 集群,请使用 kubectl version --client 避免错误。

标签: kubernetes kubectl


【解决方案1】:

kubectl version 打印出客户端版本和服务器版本。为了获取服务器版本,它连接到 kubernetes api 服务器。你要么没有安装集群,要么没有正确配置你的 kubectl 来与远程集群通信。所以它只打印客户端版本并为服务器版本抛出错误。

样本输出:

# kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:26:52Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:19:22Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

您可以使用kubectl version --client 仅获取客户端版本。

# kubectl version --client
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:26:52Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

【讨论】:

    【解决方案2】:

    正如您所提到的,您已经安装了 kubectl - 命令行工具,它允许您对 Kubernetes 集群运行命令。您可以使用 kubectl 部署应用程序、检查和管理集群资源以及查看日志。

    但是,kubectl 可以运行任何你需要的命令来拥有一个集群。

    最常见的是Minikube。但是,您将需要一个管理程序,如 VirtualboxHyperkit。 您还应该阅读有关Docker Desktop on Mac 的信息。

    如果您要搜索更多信息,您会发现人们也在使用Kubeadm,但它在 MacOS 上不受支持。

    在另一个 StackOverflow 问题中提到过,你可以找到它here

    【讨论】:

      【解决方案3】:

      注意:kubectl 是一个命令行工具工具,可让您对 Kubernetes 集群运行命令

      为了让 kubectl 找到 并访问一个给定的 kubernetes 集群它需要 kubeconfig 文件用于您要连接的给定 K8s 集群(如果您没有,您可以安装一个本地集群以使用 K8s Minikube 之类的工具,然后会为您提供此文件以连接到 minikube)

      如果你已经有一个集群,那么使用kubectl cluster-info命令检查kubectl是否正确配置,如果不是,你会收到下面的错误日志。

      $ kubectl cluster-info
      
      To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
      The connection to the server localhost:8080 was refused - did you specify the right host or port?
      

      因此,要连接到您想要使用 kubectl 的集群,您需要找到 kubeconfig 文件并配置环境变量以指向它。这意味着如果您的 $HOME/.kube/config 文件尚未在您的 KUBECONFIG 环境变量中列出,请通过export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config修复您的 KUBECONFIG 环境变量指向要使用的正确 kubeconfig 文件

      一旦你有正确的 kubeconfig 导出的 cluster-info 命令应该加载如下详细信息

      $ kubectl cluster-info
      
      Kubernetes master is running at https://xx.xx.xx.xx:6443
      KubeDNS is running at https://xx.xx.xx.xx:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-25
        • 1970-01-01
        • 2019-01-03
        • 1970-01-01
        • 2020-07-31
        • 2020-10-31
        • 2019-01-08
        • 1970-01-01
        相关资源
        最近更新 更多