在 Debian 12 上使用 kubeadm 部署单主集群
本教程基于 Debian 12,使用 kubeadm 快速搭建一个单主(1 控制平面 + N 工作节点)Kubernetes 集群,并部署 Flannel 网络插件,完成后可进行应用部署与日常运维。
一 环境准备与前置条件
二 所有节点通用配置
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | \
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
以上步骤完成后,所有节点应已具备容器运行环境与 Kubernetes 基础组件,且完成必要的内核与网络调优。
三 初始化控制平面
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
说明:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl cluster-info
kubectl get nodes
kubectl get pods -n kube-system
等待数分钟,控制平面与系统 Pod 就绪后,节点状态应变为 Ready。
四 加入工作节点
sudo kubeadm join <MASTER_IP>:6443 \
--token <TOKEN> \
--discovery-token-ca-cert-hash sha256:<HASH>
kubeadm token create --print-join-command
kubectl get nodes
所有加入节点就绪后,集群即具备基本的调度与网络能力。
五 常见问题与优化