温馨提示×

谁有Debian k8s部署经验

小樊
57
2026-07-06 09:18:27
栏目: 智能运维

我在Debian上部署过Kubernetes,下面给你一套实战可用、偏生产向的经验总结,适合你快速上手或排查问题。


一、环境准备(很关键)

1️⃣ 系统建议

  • Debian 11(Bullseye)或 12(Bookworm)
  • 最小化安装 + 禁用 swap
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab

2️⃣ 内核参数

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

sudo sysctl --system

3️⃣ 时间同步

sudo apt install -y chrony
sudo systemctl enable chronyd

二、容器运行时(强烈推荐 containerd)

安装 containerd

sudo apt update
sudo apt install -y containerd

初始化配置:

sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# 关键:启用 systemd cgroup
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

sudo systemctl restart containerd
sudo systemctl enable containerd

三、安装 kubeadm / kubelet / kubectl

1️⃣ 添加 Kubernetes 官方源

sudo apt install -y apt-transport-https ca-certificates curl gpg

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
sudo 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/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list

2️⃣ 安装

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

四、初始化 Master 节点

sudo kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket unix:///run/containerd/containerd.sock

成功后:

mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

五、安装网络插件(推荐 Calico 或 Flannel)

Calico(生产推荐)

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

Flannel(简单)

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

六、Worker 节点加入

在 master 上获取 token:

kubeadm token create --print-join-command

在 worker 执行即可。


七、Debian 特有坑点(经验)

✅ iptables 模式

update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

✅ cgroup 驱动一定要和 containerd 一致(systemd)

✅ 防火墙

  • 如果是云服务器,放行:
    • 6443
    • 10250
    • Calico/Flannel 端口

八、验证

kubectl get nodes
kubectl get pods -A

九、我还能帮你什么?

你可以直接说:

  • ✅ 单节点还是多节点?
  • ✅ 裸机 / 云服务器 / 虚拟机?
  • ✅ 是否需要高可用(HA)?
  • ✅ Docker 还是 containerd?
  • ✅ 是不是卡在某一步报错?

我可以直接给你针对你环境的部署方案或排错命令。

0 踩