您指定了正确的主机或端口吗? Kubernetes上的错误

我遵循了[http://kubernetes.io/docs/hellonode/]上的helloword教程。

当我跑步时:

kubectl run hello-node --image=gcr.io/PROJECT_ID/hello-node:v1 --port=8080

我得到:与服务器localhost:8080的连接被拒绝-您是否指定了正确的主机或端口?

为什么命令行尝试连接到本地主机?

poiuytrez asked 2020-07-18T19:16:15Z
15个解决方案
53 votes

问题是您的kubeconfig不正确。要自动生成它,请运行:

gcloud container clusters get-credentials "CLUSTER NAME"

这对我有用。

Alan Wagner answered 2020-07-18T19:16:28Z
5 votes

从Udacity进行名为Kubernetes的可伸缩微服务的教程[https://classroom.udacity.com/courses/ud615,]的教程中,在使用Kubernetes的第3部分中,重现了相同的错误。

启动一个实例:

kubectl run nginx --image=nginx:1.10.0

错误:

Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.

我如何解决错误:

登录到Google Cloud Platform

导航到容器引擎Google Cloud Platform,容器引擎

单击群集上的连接

使用登录凭据访问终端中的群集[NAME]

继续工作!!!

Jason Sprouse answered 2020-07-18T19:17:22Z
4 votes

只要确保遵循:[https://cloud.google.com/container-engine/docs/before-you-begin]之前[http://kubernetes.io/docs/hellonode/]

poiuytrez answered 2020-07-18T19:17:42Z
4 votes

确保您的配置设置为项目-kubectl

  1. 运行帐户中群集的清单:kubectl

  2. 检查输出:kubectl

  3. 运行以下命令-

kubectl

  1. 以下输出如下:

kubectl

  1. 尝试检查运行kubectl的节点的详细信息,例如-
    kubectl get nodes -o wide

应该很好走。

jningthou answered 2020-07-18T19:18:37Z
3 votes

运行“ kubeinit”命令后,kubernetes要求您以普通用户身份运行

mkdir -p $ HOME / .kube

须藤cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config

须藤chown $ {id -u):$ {id -g)$ HOME / .kube / config

但是,如果以普通用户身份运行此服务器,则会得到“与服务器localhost:8080的连接被拒绝-您指定了正确的主机或端口吗?” 尝试以root用户身份访问时(反之亦然)。 因此,请以执行上述命令的用户身份访问“ kubectl”。

Farhan Haider answered 2020-07-18T19:19:15Z
2 votes

我在使用本地docker时遇到了这个问题。 要做的是检查旋转的容器的日志,以找出问题所在。 对我来说,etcd崩溃了

   $ docker logs <etcdContainerId>
   <snip>
   2016-06-15 09:02:32.868569 C | etcdmain: listen tcp 127.0.0.1:7001: bind: address already in use

啊哈! 我一直在docker容器中与Cassandra一起玩,并且转发了所有端口,因为我不确定它需要暴露哪些端口,而7001是它的端口之一。 停止Cassandra,清理混乱并重新启动它可以解决问题。

Mumrah answered 2020-07-18T19:19:39Z
2 votes

用适当的帐户和项目重新初始化gcloud对我有用。

gcloud init

重试之后,以下命令成功执行,并生成kubeconfig条目。

gcloud container clusters get-credentials "cluster_name"

检查集群信息

kubectl cluster-info
JD-V answered 2020-07-18T19:20:08Z
1 votes

此错误意味着kubectl正在尝试连接到在本地计算机上运行的Kubernetes apiserver,如果未将其配置为与远程apiserver进行通信,则这是默认设置。

Robert Bailey answered 2020-07-18T19:20:28Z
1 votes

重新启动后,我遇到了同样的问题,我遵循了此处介绍的指南

因此,请尝试以下操作:

$ sudo -i
# swapoff -a
# exit
$ strace -eopenat kubectl version

之后,它工作正常。

Ganesh K answered 2020-07-18T19:20:57Z
0 votes

如果您使用kops在AWS上创建了集群,那么kops会为您创建~/.kube/config,这很好。 但是,如果其他人需要连接到该集群,那么他们还需要安装kops以便它可以为您创建kubeconfig:

export AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)
export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)
export CLUSTER_ALIAS=kubernetes-cluster

kubectl config set-context ${CLUSTER_ALIAS} \
    --cluster=${CLUSTER_FULL_NAME} \
    --user=${CLUSTER_FULL_NAME}

kubectl config use-context ${CLUSTER_ALIAS}

kops export cluster --name ${CLUSTER_FULL_NAME} \
  --region=${CLUSTER_REGION} \
  --state=${KOPS_STATE_STORE}
Roman answered 2020-07-18T19:21:17Z
0 votes

尝试使用sudo权限模式运行
例子sudo kubectl....

Italo José answered 2020-07-18T19:21:41Z
0 votes

我也得到以下错误:

无法连接到服务器:拨打tcp [:: 1]:8080:connectex:由于目标计算机主动拒绝连接,因此无法建立连接。

然后,我只执行以下命令,发现一切正常。

PS C:>。 ¥Minikube。 h

正在启动本地Kubernetes v1.10.0集群...正在启动VM ...下载Minikube ISO 150.53 MB / 150.53 MB [============================================ ] 100.00%0s正在获取虚拟机IP地址...正在将文件移到群集中...正在下载kubeadm v1.10.0正在下载kubelet v1.10.0完成下载kubelet v1.10.0下载完毕kubeadm v1.10.0设置证书...正在连线至丛集...设置kubeconfig ...启动集群组件...Kubectl现在已配置为使用群集。从配置文件加载缓存的图像。PS C:>。\ minikube.exe开始正在启动本地Kubernetes v1.10.0集群...正在启动VM ...正在获取虚拟机IP地址...正在将文件移到群集中...设置证书...正在连线至丛集...设置kubeconfig ...启动集群组件...Kubectl现在已配置为使用群集。

Binod Suman answered 2020-07-18T19:22:20Z
0 votes

我有同样的问题。 在我的情况下,有kubernetes API服务器没有响应。 因此,请检查您的kubernetes API服务器和控制器。

Raghunath Babalsure answered 2020-07-18T19:22:40Z
0 votes

无论您的环境如何(是否使用gcloud),都需要将kubectl指向kubeconfig。默认情况下,kubectl期望路径为$ HOME / .kube / config或将您的自定义路径指向env变量(用于脚本等)导出KUBECONFIG = / your_kubeconfig_path

请参考:: [https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/]

如果您的集群没有kubeconfig文件,请通过引用:: [https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/]创建一个kubeconfig文件。

需要找到集群的ca.crt,apiserver-kubelet-client密钥和cert。

Binoy Thomas answered 2020-07-18T19:23:14Z
-1 votes

解决方法是这样的:

minikube delete
minikube start --vm-driver none
Jack answered 2020-07-18T19:23:47Z
translate from https://stackoverflow.com:/questions/36650642/did-you-specify-the-right-host-or-port-error-on-kubernetes