英文:
Why does `kubectl get pods` suddenly fail?
问题
我正在深入研究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
的状态:
sudo systemctl status 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
谢谢任何提示。
英文:
I am diving into K8s and deployed my first pod via kubectl apply
on the master node. In order to check its status, I called kubectl get pods
twice in a row. I did not touch anything, but a subsequent call of the same command failed with the error below. Can anyone help me understand what may have happened?
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?
For completion, here the status of kubelet.service
on the master node:
● 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
Thanks for any hint.
答案1
得分: 1
以下是您要翻译的内容:
根据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不可用,请检查防火墙/iptables规则是否匹配要求:
>
> $ firewall-cmd --list-all
>
>
> 还要检查kubelet日志:
>
> # journalctl -xeu kubelet
>
> 6. 尝试重新启动Kubernetes集群,这也会进行一些基本检查:
>
>
>
> $ kubeadm-setup.sh restart
英文:
As explained in this doc by Greek Diary ‘admin’ which explains how to fix the kubectl error:The connection to the server x.x.x.x:6443 was refused - did you specify the right host or port?
Below troubleshooting steps will help to resolve your issue:
> 1. The kubectl should be executed on the Master Node.
>
> 2. Current user must have Kubernetes cluster configuration environment variable (Details of how to are listed under section Preparing to Use
> Kubernetes as a Regular User),
>
>
> $ env | grep -i kube
>
> KUBECONFIG=/root/.kube/config
>
> 3.The docker service must be running:
>
> $ systemctl status docker
>
>
> 4.The kubelet service must be running:
>
> $ systemctl status kubelet
>
> 5.TCP port 6443 should be listed as it is listening to port:
>
> netstat -pnlt | grep 6443
>
>
> If TCP port 6443 is not available, check firewall/iptables rules
> matching requirements:
>
> $ firewall-cmd --list-all
>
>
> Also check kubelet logs:
>
> # journalctl -xeu kubelet
>
> 6.Try restarting Kubernetes cluster which will also do some basic checks:
>
>
>
>
> $ kubeadm-setup.sh restart
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论