温馨提示×

debian安装k8s注意啥

小樊
41
2026-10-11 04:13:44
栏目: 智能运维

在 Debian 上安装 Kubernetes(k8s)时,有很多系统层面和版本兼容性的坑需要注意。下面按部署前 → 安装中 → 安装后给你梳理关键点,适合生产/测试环境参考。


一、安装前注意事项(非常关键)

1️⃣ 系统版本选择

✅ 推荐:

  • Debian 11 (Bullseye)
  • Debian 12 (Bookworm) ✅(目前最推荐)

⚠️ 注意:

  • 不要用太老的 Debian(如 9/10)
  • 内核建议 ≥ 5.10

查看内核:

uname -a

2️⃣ 关闭 Swap(必须)

Kubernetes 强制要求关闭 swap

swapoff -a

永久关闭(注释 fstab):

vim /etc/fstab
# 注释掉 swap 行

验证:

free -m

3️⃣ 关闭防火墙 / 或放通端口

测试环境:

systemctl disable --now ufw

生产环境(推荐): 至少放通:

  • 6443(API Server)
  • 10250(kubelet)
  • 2379-2380(etcd)
  • 30000-32767(NodePort)

4️⃣ 禁用 SELinux(Debian 默认关闭,可不处理)

Debian 一般不启用 SELinux,不用像 CentOS 那样处理。


5️⃣ 配置内核参数(重要)

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

sysctl --system

6️⃣ 加载 br_netfilter 模块

modprobe br_netfilter
echo "br_netfilter" >> /etc/modules-load.d/k8s.conf

二、容器运行时选择(重点)

✅ 推荐方案

运行时 状态
containerd ✅ 官方推荐
Docker ❌ 已废弃(1.24+ 不支持)

安装 containerd

apt install -y containerd

初始化配置:

containerd config default > /etc/containerd/config.toml

修改:

SystemdCgroup = true

重启:

systemctl restart containerd

三、安装 kubeadm / kubelet / kubectl

1️⃣ 添加 Kubernetes 源(Debian 12 示例)

apt install -y apt-transport-https ca-certificates curl
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

apt update

2️⃣ 安装

apt install -y kubelet kubeadm kubectl
systemctl enable kubelet

四、初始化集群(Master)

kubeadm init \
  --pod-network-cidr=10.244.0.0/16

初始化完成后:

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

五、网络插件(必须装)

推荐:

  • Calico(生产)
  • Flannel(简单)

Flannel 示例:

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

六、常见坑总结(重点)

❌ 常见错误

  1. swap 没关 → kubelet 启动失败
  2. containerd 没改 SystemdCgroup
  3. 网络插件没装 → Pod 一直 Pending
  4. Debian 源版本不一致
  5. 时间不同步(务必 NTP)
apt install -y chrony

七、版本兼容建议

组件 建议
k8s 1.28 / 1.29
Debian 12
containerd ≥ 1.7

八、生产环境额外建议

  • 多 Master(高可用)
  • etcd 分离或堆叠
  • 使用 HAProxy + Keepalived
  • 启用 RBAC、NetworkPolicy
  • 日志 & 监控(Prometheus + Grafana)

如果你愿意,我可以: ✅ 给你一步一步的 Debian 12 + k8s 1.29 实战教程 ✅ 或 单节点 / 多节点 / 高可用方案

你现在是 学习 / 测试 / 生产?

0 踩