在 Debian 上“装不了 Kubernetes(k8s)”通常不是 Debian 本身不支持,而是环境、版本、源或系统配置不符合要求。下面按最常见原因 → 排查方法 → 解决建议给你一个清单。
Kubernetes 对 Debian 版本有要求:
| Debian | k8s 支持情况 |
|---|---|
| Debian 11 (Bullseye) | ✅ 推荐 |
| Debian 12 (Bookworm) | ✅ 支持(较新) |
| Debian 10 及以下 | ❌ 基本不支持 |
✅ 检查:
cat /etc/debian_version
很多人直接:
apt install kubernetes
❌ Debian 官方源没有 k8s
✅ 正确做法(核心):
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list
apt update
apt install -y kubelet kubeadm kubectl
Kubernetes 强制要求 swap 关闭
❌ 报错示例:
running with swap on is not supported
✅ 解决:
swapoff -a
sed -i '/swap/d' /etc/fstab
常见缺失:
br_netfilteroverlayiptables 模式不对✅ 修复:
modprobe br_netfilter
modprobe overlay
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
Kubernetes 不再支持 docker 直接运行
✅ 推荐 containerd:
apt install -y containerd
systemctl enable --now containerd
❌ 以下基本不行:
✅ 必须:
uname -m
# x86_64 或 aarch64
| 报错 | 原因 |
|---|---|
E: Unable to locate package kubeadm |
源加错 |
swap on is not supported |
没关 swap |
detected cgroup v1 |
系统太老 |
container runtime not running |
containerd 没启动 |
# 1. 关 swap
swapoff -a
# 2. 加源
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" > /etc/apt/sources.list.d/kubernetes.list
# 3. 安装
apt update
apt install -y kubelet kubeadm kubectl containerd
# 4. 初始化
kubeadm init
你可以直接贴:
我可以直接告诉你是哪一步卡住了,怎么改。