在 Debian 上安装 Kubernetes 的实操指南
一 环境准备与前置条件
sudo apt update && sudo apt upgrade -ysudo apt install -y apt-transport-https ca-certificates curlsudo swapoff -a 并注释 /etc/fstab 中的 swap 行,避免 kubelet 启动失败。二 安装容器运行时
sudo apt install -y containerdsudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.toml/etc/containerd/config.toml,将 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 下的 SystemdCgroup 设为 truesudo systemctl enable --now containerdsudo apt install -y docker.iosudo systemctl enable --now docker三 安装 kubeadm kubelet kubectl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt update && sudo apt install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectlsudo systemctl enable --now kubelet四 初始化控制平面并安装网络插件
sudo kubeadm init --apiserver-advertise-address=<master-ip> --pod-network-cidr=10.244.0.0/16sudo kubeadm init --apiserver-advertise-address=<master-ip> --pod-network-cidr=192.168.0.0/16mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yamlkubectl get nodes五 加入工作节点与验证
kubeadm init 完成后输出的 kubeadm join 命令(包含 token 与 discovery-token-ca-cert-hash),例如:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>kubeadm token create --print-join-commandkubectl get nodes 应显示所有节点 Ready。六 常见问题与排障要点
swapoff -a 并注释 /etc/fstab。sudo sysctl -w net.bridge.bridge-nf-call-iptables=1 与 net.ipv4.ip_forward=1(写入 /etc/sysctl.d/99-k8s.conf 持久化)sudo update-alternatives --config iptablessudo kubeadm init --image-repository=registry.aliyuncs.com/google_containers ...sudo kubeadm resetsudo rm -rf /etc/cni/net.d && sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X