记录一次安装k8s初始化失败

实例化

 kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

报错

[init] Using Kubernetes version: v1.25.0
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR CRI]: container runtime is not running: output: time="2024-05-27T14:24:00+08:00" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
, error: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

看报错提示CRI v1 runtime API is not implemented for endpoint "unix:///run/containerd/containerd.sock,报错说明containerd 没有启动,我们看下containerd 状态

crictl info
FATA[0000] validate service connection: CRI v1 runtime API is not implemented for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService 
systemctl status containerd 
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2024-05-25 15:00:45 CST; 1 day 23h ago
     Docs: https://containerd.io
  Process: 17742 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 17744 (containerd)
    Tasks: 10
   Memory: 16.4M
   CGroup: /system.slice/containerd.service
           └─17744 /usr/bin/containerd

May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.244945213+08:00" level=error m...gin"
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245036348+08:00" level=info ms...l.v1
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245143134+08:00" level=info ms...c.v1
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245165036+08:00" level=info ms...c.v1
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245596769+08:00" level=info ms...ices
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245678125+08:00" level=info ms...ice"
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245791893+08:00" level=warning...s\""
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.246066102+08:00" level=info ms...trpc
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.246138980+08:00" level=info ms...sock
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.246224876+08:00" level=info ms...99s"
Hint: Some lines were ellipsized, use -l to show in full.

可以看error里面是由错误的。

 journalctl -fu containerd
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245678125+08:00" level=info msg="Connect containerd service"
May 25 15:00:45 node4 containerd[17744]: time="2024-05-25T15:00:45.245791893+08:00" level=warning msg="failed to load plugin io.containerd.grpc.v1.cri" error="failed to create CRI service: failed to find snapshotter \"overlayfs\""

这里说明系统不支持overlayfs

lsmod | grep overlay
overlay                91659  0 
  xfs_info /

在这里插入图片描述
从docker 官方文档上面来看
在这里插入图片描述
如果要修改xfs ftyoe 要修改设置,可是如果修改这个设计影响系统,所以暂时启动这个服务器

<think>好的,我现在需要帮助用户找到在CentOS系统上离线部署Kubernetes集群的教程。用户已经提供了几个引用,我需要仔细分析这些引用中的信息,整理出一个清晰的步骤指南,并生成相关问题。 首先,看看用户提供的引用内容。引用[1]提到启用Kubernetes服务时使用systemctl命令,引用[2]和[3]都涉及具体的安装步骤和镜像版本,而引用[4]详细列出了环境准备和各个节点的操作步骤。特别是引用[4]的结构很清晰,分成了环境准备、Master节点执行、Work节点执行等部分,这可能是一个比较完整的教程。 我需要确认这些引用中的步骤是否兼容,比如Kubernetes版本是否一致。例如,引用[3]使用的是v1.20.9,而引用[4]是1.28版本,可能存在差异。用户可能需要明确版本的选择,但根据问题描述,用户可能希望得到通用的步骤,同时需要指出不同版本的注意事项。 接下来,整理步骤时应该包括环境准备、安装前配置、安装containerd、配置节点、初始化集群、加入工作节点、安装网络插件以及验证安装。需要确保每个步骤中的命令正确,并注意离线安装需要提前下载镜像包。 同时,用户可能需要了解如何获取离线安装包和镜像,比如引用[2]提到的项目地址可能提供相关资源。需要提醒用户根据实际版本调整操作,特别是不同Kubernetes版本可能需要的配置差异。 在生成相关问题部分,要考虑用户可能遇到的后续问题,例如如何检查集群状态、处理节点加入失败、升级集群版本、选择网络插件以及资源需求等。这些问题能帮助用户进一步解决实际部署中的困难。 最后,确保回答符合系统级指令的要求,正确使用LaTeX格式,结构清晰,引用标识正确。需要检查是否有遗漏的步骤或者版本冲突的地方,并给出相应的建议,比如推荐使用较新版本的教程作为参考,同时注意兼容性。</think>### CentOS离线环境下Kubernetes集群部署教程 #### 一、环境准备 1. **系统要求** - CentOS 7.9或更高版本(推荐使用最小化安装) - 所有节点需关闭防火墙、SELinux和Swap: ```bash $ sudo systemctl stop firewalld && sudo systemctl disable firewalld $ sudo setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config $ sudo swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab ``` 2. **离线资源准备** - 下载Kubernetes离线安装包(如引用[4]中的1.28版本或引用[3]中的1.20.9版本) - 包含以下组件: - `kubeadm`、`kubelet`、`kubectl` - `containerd`或`docker`运行时 - 预加载镜像包(如引用[3]中的13个基础镜像) #### 二、安装配置步骤 1. **所有节点通用操作** - 加载内核模块并配置系统参数: ```bash $ sudo modprobe overlay && sudo modprobe br_netfilter $ echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee /etc/sysctl.d/k8s.conf $ sudo sysctl --system ``` - 安装容器运行时(以containerd为例): ```bash $ tar -zxvf containerd.tar.gz -C /usr/local/bin/ $ sudo systemctl enable containerd ``` 2. **安装Kubernetes组件** - 使用离线RPM包安装三件套: ```bash $ sudo rpm -ivh kubelet-*.rpm kubeadm-*.rpm kubectl-*.rpm $ sudo systemctl enable kubelet ``` 3. **主节点初始化** - 使用kubeadm初始化控制平面: ```bash $ sudo kubeadm init --pod-network-cidr=10.244.0.0/16 \ --image-repository=本地镜像路径 \ --apiserver-advertise-address=<主节点IP> ``` - 记录输出的`kubeadm join`命令供工作节点使用[^4] 4. **网络插件部署** - 加载Calico或Flannel镜像: ```bash $ docker load -i calico-images.tar $ kubectl apply -f calico.yaml ``` #### 三、验证安装 ```bash $ kubectl get nodes # 应显示所有节点状态为Ready $ kubectl get pods -A # 检查核心组件运行状态 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值