当前位置: 首页 > news >正文

【kubernetes】Debian使用Kubeadm部署Kubernetes失败:Connection Refused

这篇文章也可以在我的博客中查看

今天废话不多说直接解决一个阴间问题

问题

  1. 在部署kubernetes后(执行完kubeadm init后),执行任何kubectl命令,都会报以下错误:
The connection to the server xxx.xxx.xxx.xxx:6443 was refused - did you specify the right host or port?
  1. 此后执行kubectl get pods -A
    你会看到一些容器在无规律地被摧毁
  2. 在过一段时间后,Api-server直接开摆,你无法再连接上Kubernetes,直接Connection refused。

环境

如果你目前遇到类似问题,而且处于以下环境,那本文很可能可以帮你渡过难关:

  1. 你使用的是Debian系统(Debian12/11)
    • 我不确定其它系统会不会有相同错误,但不妨试试
  2. 你使用Kubeadm部署Kubernetes (目前的最新版,v1.28)
    • 我同样不确定其它的部署方式会不会有相同错误
  3. 你使用containerd作为container runtime
    • 如果你是通过Docker官方教程安装的Docker,那个教程会连带安装containerd
    • 所以如果你印象中没有专门安装过任何container runtime,那很可能就是containerd
  4. 你找过许多相同错误的解决方案,但最后都无法解决问题

原因

简单来说:containerdkubelet使用的cgourp driver版本对不上
Debian安装的conainerd的默认cgroup driver还是v1,但是kubelet使用的是v2

但说实话,详细的我也不太懂,也不太想去懂……
如果你对具体解释感兴趣,不妨查阅以下链接:

  • Why does etcd fail with Debian/bullseye kernel?
  • cgroups-k8s

解决

但要解决这个问题还是比较简单,只要指定containerd使用cgroup driver v2就可以:

打开containerd配置文件:

vi /etc/containerd/config.toml

加入以下内容,并保存退出:

version = 2
[plugins][plugins."io.containerd.grpc.v1.cri"][plugins."io.containerd.grpc.v1.cri".containerd][plugins."io.containerd.grpc.v1.cri".containerd.runtimes][plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]runtime_type = "io.containerd.runc.v2"[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true

重启containerd

systemctl restart containerd

重启kubelet

systemctl restart kubelet

结束了哥们,这就完事儿了。

真不敢相信被这个问题折磨了将近两天

http://www.lryc.cn/news/212495.html

相关文章:

  • Wpf 使用 Prism 实战开发Day02
  • 基于本体的军事术语知识图谱构建方法
  • Web APIs——事件委托
  • 【SpringMVC篇】讲解RESTful相关知识
  • HTML基本概念:
  • webpack编译卡住65不动,问题记录
  • 当在本地,向服务器发送信息时,服务器接受信息返回给客户端,此时采用多行读取时,客户端接收不到Server的信息
  • 2310D,Dll,栈跟踪
  • JVS-BI数字大屏设计器:一站式解决方案
  • uniapp 中添加 vconsole
  • 目标检测 YOLOv5 预训练模型下载方法
  • 第16章_变量、流程控制与游标
  • 谁知道腾讯云轻量服务器“月流量”是什么意思?
  • 算法笔记【4】-冒泡排序法改进
  • cocos creator 资源管理
  • 好用的API调试工具推荐:Apipost
  • 贪心算法学习——最长单调递增子序列
  • 银行家算法(Python实现)
  • 安装终端 ·Terminator
  • 【Python文件操作的其他例子】
  • 使用Terraform管理已经存在的kubernates和默认的节点池
  • 在HTML当中引入Vue控件,以element-ui为例
  • UE5实现相机水平矫正
  • Word插入Latex语句并编译为数学公式
  • Google Play PolicyBytes 政策更新中文视频 | 2023 年 10 月
  • pytorch-fastrcnn识别王者荣耀敌方英雄血条
  • 阿里云推出通义千问App,提供全方位的协助
  • 深入解析 Spring Framework 中 @Autowired 注解的实现原理
  • 电脑数据文件恢复工具easyrecovery14中文版
  • Android NDK开发详解之Application.mk探秘