kubectl 安装错误 - 与服务器 localhost:8080 的连接被拒绝 - 您是否指定了正确的主机或端口

kubectl install error -The connection to the server localhost:8080 was refused - did you specify the right host or port

我正在尝试在 AWS 上安装一个 kops 集群,作为先决条件,我按照提供的这些说明安装了 kubectl,

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl

但是当我尝试验证安装时,出现以下错误。

ubuntu@ip-172-31-30-74:~$ kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

我不知道为什么!因为我之前已经用类似的方式设置了集群并且一切正常。 现在想建立一个新的集群,但有点卡在这里面。

感谢任何帮助。

The connection to the server localhost:8080 was refused - did you specify the right host or port?

此错误通常意味着您的 kubectl 配置不正确,它指向错误的地址或凭据错误。

如果您已经使用 kops 成功创建集群,您只需将其连接设置导出到 kubectl config。

kops export --name=<your_cluster_name> --config=~/.kube/config

如果你想为这个集群使用一个单独的配置文件,你可以通过设置环境变量来实现:

export KUBECONFIG=~/.kube/you_cluster_name.config
kops export kubecfg --name you_cluster_name --config=~$KUBECONFIG

您还可以使用 KOPS_STATE_STORE:

为每个团队成员创建一个 kubectl 配置
export KOPS_STATE_STORE=s3://<somes3bucket>
# NAME=<kubernetes.mydomain.com>
kops export kubecfg ${NAME}

两件事:

  1. 如果每条指令都得到了正确的遵循,但仍然面临同样的问题。 @VAS 的回答可能会有帮助。
  2. 但是在我的例子中,我在部署集群后立即尝试使用 kubectl 进行验证。需要注意的是,根据主节点和工作节点的大小,集群需要一些时间才能启动。

一旦集群启动,kubectl 就可以成功通信了。听起来很傻,我等了 15 分钟左右,直到我的主人成功 运行。然后一切正常。

在我的特殊情况下,我忘记在安装后配置 kubectl,这导致了完全相同的症状。

更具体地说,我忘记在 $HOME/.kube 目录中创建和填充配置文件。您可以阅读有关如何正确执行此操作的信息 here,但这应该足以使错误消失:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config