VPS海外搭建Debian 11 K8s高可用集群实战
文章分类:技术文档 /
创建时间:2025-08-08
想在VPS海外搭建Debian 11的K8s(Kubernetes,容器编排工具)高可用集群?市面上不少教程要么步骤模糊,要么没结合具体系统与网络环境。这篇实战指南从准备到验证全程拆解,帮新手快速上手。

准备工作:3台VPS海外的基础配置
首先需要3台VPS海外服务器(高可用至少需要3个控制平面节点避免脑裂),全部安装Debian 11系统。第一步是确保服务器间网络互通——既能互相ping通,也能访问外网(后续下载组件需要)。接着编辑`/etc/hosts`文件做主机名与IP映射,例如:
192.168.1.10 master1
192.168.1.11 master2
192.168.1.12 worker1
这样做能避免DNS解析延迟影响K8s组件通信。最后关闭防火墙(Debian默认用ufw),执行命令:
sudo systemctl disable --now ufw
防止规则干扰集群组件间通信。
安装Docker:K8s的容器运行时
K8s依赖容器运行时管理容器,这里选社区成熟的Docker。每台服务器执行安装命令:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
安装完成后启动并设置开机自启:
sudo systemctl enable --now docker
安装K8s组件:kubeadm/kubelet/kubectl
接下来安装K8s核心组件。先添加官方软件源:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "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.list
然后安装kubeadm(集群初始化工具)、kubelet(节点容器管理器)、kubectl(集群管理客户端):
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本防止自动升级
初始化集群:主节点的关键操作
在第一个主节点(如master1)执行初始化命令,注意替换实际负载均衡器参数(没有负载均衡器可用haproxy替代):
sudo kubeadm init --control-plane-endpoint "lb.example.com:6443" --pod-network-cidr=10.244.0.0/16
初始化成功后,按提示配置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
同时务必保存最后输出的`kubeadm join`命令(后续其他节点加入集群用)。
安装网络插件:Flannel实现Pod通信
K8s需要网络插件实现Pod跨节点通信,选轻量的Flannel:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
等待几分钟,通过`kubectl get pods -n kube-system`检查flannel相关Pod状态为Running即安装成功。
加入节点与验证:完成高可用集群
其他主节点和工作节点执行之前保存的`kubeadm join`命令(示例):
sudo kubeadm join lb.example.com:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
最后在主节点执行验证命令:
kubectl get nodes
若所有节点状态显示为Ready,说明K8s高可用集群搭建完成。此时可尝试部署一个简单的Nginx应用,测试集群调度与容灾能力。
通过VPS海外搭建Debian 11的K8s高可用集群,既能利用海外节点的网络优势,又能通过开源工具构建稳定的容器编排平台。掌握这些步骤后,你可以根据业务需求调整节点数量或更换网络插件,灵活扩展集群能力。
下一篇: 云服务器搭K8S集群必看检查清单