Kubernetes kubectl apply命令不起作用,导致连接被拒绝错误

Kubernetes kubectl apply命令不起作用,导致连接被拒绝错误,kubernetes,kubectl,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/ho

当我尝试使用以下命令设置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
更新:
与其他问题不同,这似乎不是权限问题。

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

修复了使用以下用于calico网络的命令发出的错误(相应地更改网络插件)

然后跑

sudo kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
并相应地遵循其余部分

以下内容使我得出结论,api服务器可能没有运行

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

systemctl status kubelet.service 
并查看日志以获取更多信息,了解api服务器未运行的原因以及如何解决问题

journalctl -xn --unit kubelet.service 

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

cp-i/etc/kubernetes/admin.conf$HOME/
现在以root用户身份运行下面的
kubectl apply
命令

kubectl应用-fhttps://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml

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

- name: apply the flannel pod network add-on
  command: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
  become: yes
  become_method: sudo
  become_user: <user>
-名称:应用法兰绒吊舱网络附加组件
命令:kubectl apply-fhttps://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
变成:是的
方法:sudo
成为用户:
在Ansible playbook执行期间,有一个任务正在运行上面的kubectl apply命令。但是,它是由根用户执行的。因此,出现连接被拒绝错误。为了克服这个问题,我更新了playbook,在我的常规用户帐户中使用BEGINE指令

本文对此进行了解释:

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

我在Google云平台Cloud Shell上发出集群命令时收到此错误

当您使用Google云控制台或使用gcloud从 不同的计算机,您环境的kubeconfig未更新

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

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

一旦完成,我就能够无误地发布集群更改。

可能重复“否”,但不是。错误看起来很相似,仅此而已,更多的是关于权限问题。为什么你认为你的问题不是权限问题?您没有在问题中提供更多信息,以表明这不是相关问题。
gcloud container clusters get-credentials my-xyz-cluster --zone=us-central1-a