kubectl apply 命令不起作用,给出连接被拒绝的错误
kubectl apply command does not work, gives connection refused error
当我尝试使用以下设置 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 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
并相应地遵循其余部分
以下 issue 使我得出结论,即 api 服务器可能不是 运行。
我建议检查主节点kubelet
服务的状态
systemctl status kubelet.service
并检查日志以获取更多信息,以了解 api 服务器为何未 运行 以及如何解决问题
journalctl -xn --unit kubelet.service
基本上,当你启动 Kubernetes 时,你会在端口 6443 上启动服务,但是上面的命令是在端口 8080 上搜索服务 运行ning。这是因为当你 运行 sudo 时,它运行s 使用来自 sudo 的变量,它没有关于 Kubernetes 运行ning 所在端口的信息,因此它默认为 8080。运行 以下命令作为 root 用户在主节点。
cp -i /etc/kubernetes/admin.conf $HOME/
现在 运行 kubectl apply
命令如下作为 root 用户。
kubectl apply -f https://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>
在 Ansible 剧本执行期间,有一个任务是 运行 上面的 kubectl apply 命令。但是,它是由 root 用户执行的。因此,发生连接被拒绝错误。为了克服这个问题,我更新了 playbook,使用 become 指令将 sudo 添加到我的普通用户帐户中。
这个post解释了它:
https://www.jasonneurohr.com/articles/connection-refused-when-installing-flannel-on-kubernetes
对我来说,问题是我有一个非根用户需要 运行 命令和 运行 工作节点上的 yaml 文件,这个非根用户需要可以无密码登录到工作节点并能够成为 root。
将此非 root 用户配置为无需密码即可通过 ssh 连接到 kubeworker 后,问题已解决。
我在 Google Cloud Platform Cloud Shell 上发出集群命令时收到此错误。
When you create a cluster using Google Cloud Console or using gcloud from a
different computer, your environment's kubeconfig is not updated.
要自动修复 kubeconfig,请使用此 gcloud 命令修复配置:
gcloud container clusters get-credentials my-xyz-cluster --zone=us-central1-a
一旦完成,我就能够毫无错误地发出集群更改。
当我尝试使用以下设置 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 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
并相应地遵循其余部分
以下 issue 使我得出结论,即 api 服务器可能不是 运行。
我建议检查主节点kubelet
服务的状态
systemctl status kubelet.service
并检查日志以获取更多信息,以了解 api 服务器为何未 运行 以及如何解决问题
journalctl -xn --unit kubelet.service
基本上,当你启动 Kubernetes 时,你会在端口 6443 上启动服务,但是上面的命令是在端口 8080 上搜索服务 运行ning。这是因为当你 运行 sudo 时,它运行s 使用来自 sudo 的变量,它没有关于 Kubernetes 运行ning 所在端口的信息,因此它默认为 8080。运行 以下命令作为 root 用户在主节点。
cp -i /etc/kubernetes/admin.conf $HOME/
现在 运行 kubectl apply
命令如下作为 root 用户。
kubectl apply -f https://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>
在 Ansible 剧本执行期间,有一个任务是 运行 上面的 kubectl apply 命令。但是,它是由 root 用户执行的。因此,发生连接被拒绝错误。为了克服这个问题,我更新了 playbook,使用 become 指令将 sudo 添加到我的普通用户帐户中。
这个post解释了它:
https://www.jasonneurohr.com/articles/connection-refused-when-installing-flannel-on-kubernetes
对我来说,问题是我有一个非根用户需要 运行 命令和 运行 工作节点上的 yaml 文件,这个非根用户需要可以无密码登录到工作节点并能够成为 root。 将此非 root 用户配置为无需密码即可通过 ssh 连接到 kubeworker 后,问题已解决。
我在 Google Cloud Platform Cloud Shell 上发出集群命令时收到此错误。
When you create a cluster using Google Cloud Console or using gcloud from a different computer, your environment's kubeconfig is not updated.
要自动修复 kubeconfig,请使用此 gcloud 命令修复配置:
gcloud container clusters get-credentials my-xyz-cluster --zone=us-central1-a
一旦完成,我就能够毫无错误地发出集群更改。