在 CentOS 上“部署不了 Kubernetes” 并不是一个单一原因,通常是环境、版本、配置或网络几类问题叠加。下面按常见原因给你系统梳理一下,基本能覆盖 90% 的情况。
yum install 报错kubeadm 装不上✅ 建议:
❌ 错误做法:
yum install docker
kubeadm init
✅ 正确做法(containerd 示例):
yum install -y containerd
systemctl enable --now containerd
Kubernetes 明确要求关闭 swap
❌ 现象:
[ERROR Swap]: running with swap on is not supported
✅ 解决:
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
K8s 需要大量端口(6443、10250 等)
✅ 快速排查:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
国内环境直接 kubeadm init 必失败
❌ 报错:
failed to pull image k8s.gcr.io/kube-apiserver
✅ 解决方案:
kubeadm init \
--image-repository registry.aliyuncs.com/google_containers
或提前拉镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/...
K8s 要求:
modprobe br_netfilter
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
否则:
❌ 云服务器 1C1G 基本跑不起来
| 问题 | 原因 |
|---|---|
| kubeadm init 卡住 | 镜像拉不到 |
| node NotReady | 网络插件没装 |
| swap 报错 | 没关 swap |
| docker 报错 | 1.24+ 不支持 |
| yum 报错 | CentOS 8 源失效 |
你可以贴一下:
cat /etc/redhat-release)我可以直接告诉你 是哪一步挂了、怎么改、甚至给你一份可跑的部署脚本。