温馨提示×

debian k8s部署最佳实践是啥

小樊
43
2026-10-02 08:49:51
栏目: 智能运维

在 Debian 上部署 Kubernetes(k8s)的“最佳实践”通常分为 系统准备、安装方式选择、集群配置、安全与运维 几个层面。下面给你一份实用、生产可向的导引(以 Debian 11/12 为例)。


一、系统准备(非常重要)

1. 系统版本

  • 推荐:Debian 11 (Bullseye) / Debian 12 (Bookworm)
  • 内核:≥ 5.x(建议启用 overlay / br_netfilter)

2. 基础配置

# 关闭 swap(kubelet 要求)
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab

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

modprobe overlay
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

sysctl --system

二、容器运行时选择(最佳实践)

✅ 推荐:containerd(不是 docker)

安装 containerd

apt update
apt install -y containerd

# 生成默认配置
mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml

# 修改 SystemdCgroup = true
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

systemctl restart containerd
systemctl enable containerd

三、Kubernetes 安装方式(核心决策)

✅ 生产推荐:kubeadm

(不要手工二进制部署)

# 添加 Kubernetes apt 源
apt-get update
apt-get 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-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

四、初始化集群(Master)

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

初始化后:

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

五、网络插件(CNI)

推荐方案

  • 小规模 / 通用:Calico
  • 云原生 / 高性能:Cilium(强烈推荐)

Calico 示例

kubectl apply -f https://docs.tigera.io/calico/latest/manifests/calico.yaml

六、节点加入

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

七、生产最佳实践清单 ✅

1. 高可用

  • ≥ 3 个 Master(堆叠 etcd 或外部 etcd)
  • 使用 HAProxy + Keepalived 或云 LB

2. 安全

  • 禁用匿名访问
  • 启用 RBAC
  • 使用 cert-manager + TLS
  • 禁止 root 登录 SSH

3. 运维

  • 使用 kubelet --fail-swap-on=false ❌(不要)
  • 定期 kubeadm upgrade
  • 使用 Prometheus + Grafana + Loki

4. 存储

  • 使用 CSI(如 Rook-Ceph / OpenEBS / 云盘)

八、不推荐的做法 ❌

  • 使用 Docker 作为运行时(已废弃)
  • 单节点跑生产
  • 关闭防火墙但不规划网络
  • 手动改 /etc/kubernetes 文件

九、推荐组合(2024+)

项目 推荐
OS Debian 12
Runtime containerd
Init kubeadm
CNI Cilium
Ingress ingress-nginx / traefik
监控 Prometheus Stack

如果你愿意,我可以:

  • 给你一份 Debian + kubeadm 一键脚本
  • 或按 单机 / 生产 HA / 边缘 场景分别讲
  • 或帮你选 k3s vs k8s

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

0 踩