kubectl apply命令不起作用,给出连接拒绝错误

时间:2018-07-26 09:36:50

标签: kubernetes kubectl

当我尝试使用以下设置Pod网络时

sudo kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml

我收到此错误,请帮助

unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused
unable to recognize "https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml": Get http://localhost:8080/api?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused

更新: 与其他问题不同,这似乎不是权限问题

6 个答案:

答案 0 :(得分:10)

发现这是kubectl配置不正确的问题。

使用以下命令解决了calico网络问题(针对网络插件插件进行了相应更改)

sudo kubeadm init --pod-network-cidr=192.168.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

然后运行

sudo kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml

,并按照其余步骤进行操作

答案 1 :(得分:2)

在Google Cloud Platform Cloud Shell上发出集群命令时,我收到此错误。

It is discussed here

使用Google Cloud Console或从 在其他计算机上,您环境的kubeconfig未更新。

要自动修复kubeconfig,请使用以下gcloud命令修复配置:

gcloud container clusters get-credentials my-xyz-cluster --zone=us-central1-a

完成后,我就可以发出群集更改而没有任何错误。

答案 2 :(得分:0)

以下issue使我得出一个结论,即api服务器可能未运行。

我建议检查主节点上kubelet服务的状态

systemctl status kubelet.service 

并查看日志以获取更多信息,以了解api服务器为何未运行以及如何解决问题

journalctl -xn --unit kubelet.service 

答案 3 :(得分:0)

基本上,当您启动Kubernetes时,您会在端口6443上启动服务,但是上面的命令正在搜索在端口8080上运行的服务。这是因为当您运行sudo时,它将使用sudo中的变量运行,而该变量没有有关运行Kubernetes的端口的信息,因此默认值为8080。以root用户身份在主节点上运行以下命令。

cp -i /etc/kubernetes/admin.conf $HOME/

现在以root用户身份运行以下kubectl apply命令。

kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml

答案 4 :(得分:0)

我遇到了同样的问题,不得不对Ansible脚本进行以下更改:

performance.getEntries()

在执行Ansible剧本期间,上面有一个正在运行kubectl apply命令的任务。但是,它是由root用户执行的。因此,发生连接拒绝错误。为了克服这个问题,我更新了剧本,使用了begin指令将sudo转换为我的常规用户帐户。

这篇文章对此进行了解释:
https://www.jasonneurohr.com/articles/connection-refused-when-installing-flannel-on-kubernetes

答案 5 :(得分:0)

对我来说,问题是我有一个非root用户,需要运行命令并在工作节点上运行yaml文件,该非root用户需要具有对工作节点的无密码登录名并能够成为根。 将这个非root用户配置为不带密码ssh到kubeworker后,问题已解决。