温馨提示×

如何简化Debian k8s部署流程

小樊
41
2026-07-06 09:34:33
栏目: 智能运维

在 Debian 上简化 Kubernetes(k8s)部署,核心思路是:减少手动操作、使用成熟工具、选择与 Debian 兼容的组件。下面按“从简单到生产级”给你几种实用方案,并附上关键注意点。


一、最推荐:kubeadm + 自动化脚本(官方标准)

适合:学习 / 测试 / 中小规模生产

1️⃣ 准备节点(所有节点)

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

# 加载内核模块
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

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

sudo sysctl --system

2️⃣ 安装容器运行时(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

3️⃣ 安装 kubeadm / kubelet / kubectl

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

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

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

4️⃣ 初始化控制节点(Master)

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

配置 kubectl:

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

5️⃣ 安装网络插件(Flannel 示例)

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

6️⃣ Worker 节点加入

在 Master 输出中找到:

kubeadm join <master-ip>:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

二、进一步简化:一条脚本自动化(适合重复部署)

你可以把上面步骤封装成 setup-k8s.sh,实现:

./setup-k8s.sh master
./setup-k8s.sh worker <join-command>

✅ 避免重复操作
✅ 减少人为错误
✅ 适合实验室 / CI 环境


三、真正零手动:使用 Rancher / K3s(强烈推荐 Debian)

✅ K3s(轻量级 Kubernetes)

curl -sfL https://get.k3s.io | sh -

特点:

  • 单二进制
  • 内置 containerd + flannel
  • 极低资源占用
  • Debian / Raspberry Pi 非常友好

高可用:

curl -sfL https://get.k3s.io | sh -s - server --cluster-init

✅ Rancher(Web UI + 多集群)

适合:管理多个 k8s 集群

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  rancher/rancher

然后:

  • 浏览器访问
  • 一键创建 / 导入 k8s 集群

四、Ansible 批量部署(团队级)

适合:

  • 多节点
  • 可重复
  • 生产环境

推荐项目:

  • kubespray(最成熟)
git clone https://github.com/kubernetes-sigs/kubespray
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml

优点:

  • 支持 Debian / Ubuntu / CentOS
  • 高度可配置
  • 可扩展

五、简化思路总结(重点)

目标 推荐方式
学习 / 快速测试 kubeadm
单节点 / 边缘 K3s
多节点生产 Kubespray
图形化管理 Rancher
最大程度自动化 Ansible

六、常见 Debian 坑位提醒 ✅

  • Debian 12 默认 无 swap,但老版本要手动关
  • containerd 一定要开 SystemdCgroup = true
  • 防火墙放行 6443 / 10250
  • 确保 cgroup 可用(cat /proc/cgroups

如果你愿意,我可以:

  • ✅ 给你 Debian 专用一键脚本
  • ✅ 帮你选 单节点 / 高可用 / 生产级方案
  • ✅ 对比 kubeadm vs K3s vs kubespray

你现在的使用场景是?

0