温馨提示×

centos k8s部署报错为何

小樊
40
2026-10-18 01:26:46
栏目: 智能运维

在 CentOS 上部署 Kubernetes(k8s)时,报错原因很多,需要看具体报错信息才能精确定位。不过我可以先给你总结一下 CentOS 部署 k8s 最常见报错及原因,你可以对照排查。


一、最常见 CentOS k8s 部署报错原因

1️⃣ 系统环境未关闭(非常高概率)

K8s 对系统有硬性要求:

必须操作:

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

❌ 常见报错:

  • running with swap on is not supported
  • Failed to create sandbox

2️⃣ 内核参数 / 桥接网络未配置

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sysctl --system

❌ 常见报错:

  • proc/sys/net/bridge/bridge-nf-call-iptables
  • Pod 无法通信

3️⃣ 容器运行时问题(docker / containerd)

CentOS 常见:

  • Docker 版本不兼容
  • containerd 未启动
  • cgroup 驱动不一致

检查:

systemctl status docker
systemctl status containerd

kubeadm 推荐配置:

# /etc/containerd/config.toml
SystemdCgroup = true

❌ 常见报错:

  • failed to run Kubelet
  • cgroup driver mismatch

4️⃣ kubeadm init 报错

典型原因:

  • 没有 --pod-network-cidr
  • 时间不同步
  • 镜像拉不下来(国内环境)

示例正确命令:

kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --image-repository=registry.aliyuncs.com/google_containers

❌ 常见报错:

  • Unable to fetch the kubeadm config
  • image pull failed

5️⃣ 时间不同步(非常容易被忽略)

timedatectl set-ntp true

❌ 报错:

  • certificate has expired
  • token 无效

6️⃣ 网络插件未安装

kubeadm 初始化后 必须装 CNI:

  • Flannel
  • Calico
  • Cilium

❌ 现象:

  • Node 状态 NotReady
  • Pod 一直 Pending

二、你可以这样提供信息,我帮你精准分析

请把以下信息贴出来(脱敏即可):

  1. 完整报错信息(命令 + 错误)
  2. 部署方式
    • kubeadm / 二进制 / k3s / minikube
  3. CentOS 版本
    cat /etc/redhat-release
    
  4. k8s 版本
    kubeadm version
    
  5. 容器运行时
    docker version / ctr version
    

三、快速自检清单 ✅

  • [ ] CentOS 7/8/9?
  • [ ] firewalld 关闭?
  • [ ] SELinux 关闭?
  • [ ] swap 关闭?
  • [ ] 时间同步?
  • [ ] 镜像能拉取?

如果你愿意,可以直接把 报错截图或日志贴出来,我可以一步一步帮你排到能 kubectl get nodes 出结果。

0 踩