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 错误的步骤了解更多信息。
另请查看类似所以了解更多信息。