最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Ubuntu 服务器高可用集群搭建如何做
时间:2026-08-22 08:04:48 编辑:袖梨 来源:一聚教程网
Ubuntu服务器高可用集群搭建的核心是消除单点故障、实现自动故障转移和持续服务能力,需根据服务类型(AI推理、容器编排或Web应用)选择对应方案,如Docker Swarm、HAProxy+Keepalived或Kubernetes,并统一完成系统同步、主机名配置、关闭swap、内核调优和网络互通等基础准备。
Ubuntu服务器高可用集群搭建,核心是消除单点故障、实现自动故障转移和持续服务能力。不同场景适用不同方案,关键看你要跑什么服务——AI推理(如Meixiong Niannian/TranslateGemma)、容器编排(Kubernetes/Docker Swarm),还是传统Web服务(Nginx+Keepalived)。下面分四类主流方案讲清楚怎么做,每类都聚焦实操要点。明确目标再选架构
别一上来就装软件。先问三个问题:
• 你部署的是什么服务?(模型API?Web应用?数据库?)
• 预期并发量和SLA要求?(99.9%可用性 vs 容忍分钟级中断)
• 现有硬件或云资源怎么分布?(几台机器?是否同网段?能否直连?)
比如TranslateGemma这类大模型服务,推荐Docker Compose多实例+HAProxy负载+Keepalived VIP;而Kubernetes生产集群,则必须用kubeadm + kube-vip 或 haproxy + etcd多主。
通用基础准备(所有方案都绕不开)
无论哪种高可用,这五步必须在所有节点上统一执行:
• 系统同步:用chrony或ntpdate校准时间,误差超过1秒K8s会拒绝注册节点
• 主机名与hosts解析:每台机器设唯一hostname,并在/etc/hosts里写死所有节点IP和名称,禁用DNS依赖
• 关闭swap:K8s和部分容器运行时强制要求,执行swapoff -a并注释/etc/fstab中swap行
• 内核参数调优:启用br_netfilter、开启IPv4转发、增大文件句柄数(fs.file-max = 1000000)
• 网络互通验证:用ping和telnet IP 端口确认节点间TCP连通性,特别是VIP所在子网要支持ARP广播
按服务类型选具体方案
• Web/API服务(如Nginx/Tomcat)
用HAProxy + Keepalived最轻量。主备节点装相同配置,Keepalived通过vrrp_script检测HAProxy进程或HTTP健康端点,一旦失败3秒内漂移VIP。注意priority值差至少10,避免脑裂。
• Kubernetes集群
推荐kubeadm + kube-vip(Ubuntu 22.04+)或haproxy + keepalived + etcd集群(兼容性更广)。3个master节点必须同网段,VIP地址不能被其他设备占用,且kube-vip需以DaemonSet方式部署到每个master。
• AI模型服务(如TranslateGemma)
用Docker Compose定义多个service副本,前置HAProxy做加权轮询或最少连接调度,后端配置health_check指向/health接口。模型权重文件建议挂载到共享存储(NFS或Ceph),避免各节点重复加载。
• Docker原生编排
Docker Swarm开箱即用:在管理节点执行docker swarm init --advertise-addr=本机IP,工作节点用docker swarm join加入。多管理节点时,Raft日志自动同步,任一manager宕机不影响任务调度。
验证和监控不能省
部署完必须做三件事:
• 手动模拟故障:shutdown主节点、kill HAProxy进程、断开网线,观察VIP切换时间和业务是否中断
• 接入基础监控:Prometheus抓取各节点node_exporter指标,Grafana看CPU/内存/网络丢包率;对HAProxy加stats页面暴露metrics,K8s集群用kube-state-metrics
• 设置告警阈值:VIP不可达、Pod重启频繁、API响应超500ms、磁盘使用超85%,这些信号必须邮件或钉钉通知到人