Kubelet 处于运行状态,但 kubectl 给出与服务器的连接被拒绝错误

Kubelet 处于运行状态,但 kubectl 给出与服务器的连接被拒绝错误

Kubernetes 集群之前运行良好,在重启主节点 (1.0.0.0) 后,运行 kubectl 命令时出现问题。当我运行kubectl get nodes命令时,出现以下错误。

# kubectl get nodes
The connection to the server 1.0.0.0:6443 was refused - did you specify the right host or port?

当我连接到主节点(1.0.0.0)时,端口 6443 未打开以接受连接。netstat -lntp|grep 6443没有输出。Kubelet 服务处于运行状态, 的输出systemctl status kubelet没有显示任何可疑内容。

尝试重新启动 kubelet 服务,但没有成功。swapoff -a在重新启动 kubelet 服务之前也尝试过。

我是否遗漏了其他任何接受 6443 端口连接的服务?或者这是 kubelet 的工作,但未能完成?请帮忙。

注意:我的 IP 地址被屏蔽为 1.0.0.0,实际 IP 不同。到处都只使用 Centos。

答案1

检查以下可能的解决方案:

首先查看 kubelet 输出的日志journalctl -xeu,检查是否error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directory重新启动并启用cri-dockerd 服务如下所示:

sudo systemctl enable cri-dockerd.service
sudo systemctl restart cri-dockerd.service then
sudo systemctl start kubelet

它可能对你有用,请仔细阅读github 链接了解更多信息。

1)Kubeconfig 环境变量可能未设置。 export KUBECONFIG=/etc/kubernetes/admin.conf$HOME/.kube/config

2)用户的 $HOME 目录有no .kube/config文件。如果你没有 .kube 或配置文件

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf HOME/.kube/config sudo chown (id -u):$(id -g) 
$HOME/.kube/config

或者,您也可以像这样导出 KUBECONFIG 变量:

export KUBECONFIG=$HOME/.kube/config

3)上面的配置文件中配置的服务器/端口是错误的。它是否与主服务器的 IP/主机名相同?如果不是,您是否复制了它?您可能需要修复它。

顺便说一下,您可以通过在 CLI 上发出 hostname 命令来获取主机名。或者通过 ifconfig 获取 ip。

4)Docker 服务可能已关闭,因此 kubeapi pod 未运行

sudo systemctl start docker
sudo systemctl start kubelet
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown (id -u):(id -g) $HOME/.kube/config

5)Kubelet 服务可能已关闭。这可能是由于启用了 swap:

  • sudo-i
  • 交换-a
  • 出口
  • strace -eopenat kubectl 版本

您可以再次输入 kubectl get nodes,如下所示。

在此处输入图片描述

6)可能是其他原因'磁盘空间':

查看“df -h”,无覆盖或共享内存(安装在/var/lib/docker…) 一直处于列出状态,直到您增加可用磁盘空间。

7)按照以下类似的过程来解决您的问题

掌握

kubeadm 重置 kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40 --kubernetes-version=v1.18.0

    kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
        --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

    $ mkdir -p $HOME/.kube
    $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    $ sudo chown $(id -u):$(id -g) $HOME/.kube/config

节点1

$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
    --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

节点2

$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
    --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

掌握

$ kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
master   Ready    master   5m18s   v1.18.6
node1    Ready    <none>   81s     v1.18.6
node2    Ready    <none>   43s     v1.18.6
$ scp /root/.kube/config [email protected]:/root/.kube/config
$ scp /root/.kube/config [email protected]:/root/.kube/config

8)如果问题仍然存在,请尝试以下方法:

重新启动实例后,iptables 可能会出现问题。

sudo su
iptables -P INPUT ACCEPT ALL
iptables -F

另请参阅文档描述了解决 kubectl 错误的步骤了解更多信息。

另请查看类似所以了解更多信息。

相关内容