当我尝试使用以下设置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
更新: 与其他问题不同,这似乎不是权限问题
答案 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上发出集群命令时,我收到此错误。
使用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后,问题已解决。