K8s - 解决主机重启后kubelet无法自动启动问题 错误:The connection to the server 192.168.60.128:6443 was refused - did you specify the right host or port?
1,问题描述
(1)在安装配置好 Kubernetes 后,正常情况下服务器关机重启,kubelet 也会自动启动的。但最近配置的一台服务器重启后,输入命令 kubectl get nodes 查看节点报如下错误:
The connection to the server 192.168.60.128:6443 was refused - did you specify the right host or port?
(2)输入 systemctl status kubelet 命令查看 kubelet 的情况,发现 kubelet 确实没有启动:
ube-apiserver.service - Kubernetes API Server Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) since Mon 2019-03-18 14:55:11 CST; 9min ago Docs: https://github.com/kubernetes/kubernetes Process: 6446 ExecStart=/opt/kubernetes/bin/kube-apiserver $KUBE_APISERVER_OPTS (code=exited, status=1/FAILURE) Main PID: 6446 (code=exited, status=1/FAILURE) Mar 18 14:55:11 localhost.localdomain kube-apiserver[6446]: --vmodule moduleSpec comma-separated list of pattern=N settings for file-filtered logging Mar 18 14:55:11 localhost.localdomain kube-apiserver[6446]: --watch-cache Enable watch caching in the apiserver (default true) Mar 18 14:55:11 localhost.localdomain kube-apiserver[6446]: --watch-cache-sizes strings List of watch cache sizes for every resource (pods, nodes, etc.), comma sepa...ber. It take Mar 18 14:55:11 localhost.localdomain kube-apiserver[6446]: error: failed to create listener: failed to listen on 192.168.60.128:6443: listen tcp 192.168.247.211:6443: bind: cannot assign requested address Mar 18 14:55:11 master systemd[1]: kube-apiserver.service holdoff time over, scheduling restart. Mar 18 14:55:11 master systemd[1]: Stopped Kubernetes API Server. Mar 18 14:55:11 master systemd[1]: start request repeated too quickly for kube-apiserver.service Mar 18 14:55:11 master systemd[1]: Failed to start Kubernetes API Server. Mar 18 14:55:11 master systemd[1]: Unit kube-apiserver.service entered failed state. Mar 18 14:55:11 master systemd[1]: kube-apiserver.service failed. Hint: Some lines were ellipsized, use -l to show in full.
2,问题原因
由于 K8s 必须保持全程关闭交换内存,之前我安装是只是使用 swapoff -a 命令暂时关闭 swap。而机器重启后,swap 还是会自动启用,从而导致 kubelet 无法启动。
3,解决办法
(1)首先执行如下命令关闭 swap。
swapoff -a
(2)接着编辑 /etc/fstab 文件。
vi /etc/fstab
(3)将 /dev/mapper/centos-swap swap swap default 0 0 这一行前面加个 # 号将其注释掉。
(4) 编辑完毕后保存退出。这样机器重启后 kubelet 也可以正常自动启动了。
不要小瞧女程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具