为什么`kubectl get pods`突然失败了?

问题描述 投票:0回答:1

我正在研究 K8s,并通过

kubectl apply
在主节点上部署了我的第一个 pod。为了查看它的状态,我连续调用了两次
kubectl get pods
。我没有触及任何东西,但随后调用同一命令失败并出现以下错误。谁能帮我理解可能发生了什么?

ubuntu:~$ kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
nginx   0/1     Pending   0          18s
ubuntu:~$ kubectl get pods
The connection to the server xxx.xxx.xxx.xxx:6443 was refused - did you specify the right host or port?

为了完成,这里是

kubelet.service
在主节点上的状态:

● kubelet.service - kubelet: The Kubernetes Node Agent
     Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/kubelet.service.d
             └─10-kubeadm.conf
     Active: active (running) since Thu 2023-04-20 02:12:52 UTC; 23min ago

感谢任何提示。

kubernetes kubectl
1个回答
0
投票

正如 Greek Diary ‘admin’ 在这篇文档中所解释的那样,它解释了如何修复 kubectl 错误:与服务器 x.x.x.x:6443 的连接被拒绝 - 您是否指定了正确的主机或端口?

以下故障排除步骤将有助于解决您的问题:

  1. kubectl 应该在主节点上执行。

  2. 当前用户必须具有 Kubernetes 集群配置环境变量(如何作为普通用户准备使用 Kubernetes 部分下列出的详细信息),

例如:

$ env | grep -i kube

 KUBECONFIG=/root/.kube/config

3.docker服务必须运行:

 $ systemctl status docker

4.kubelet服务必须正在运行:

   $ systemctl status kubelet

5.TCP 端口 6443 应该被列出,因为它正在监听端口:

netstat -pnlt | grep 6443

如果TCP端口6443不可用,查看firewall/iptables规则匹配要求:

$ firewall-cmd --list-all

同时检查 kubelet 日志:

# journalctl -xeu kubelet

6.尝试重启 Kubernetes 集群,这也会做一些基本检查:

   $ kubeadm-setup.sh restart
© www.soinside.com 2019 - 2024. All rights reserved.