linux集群需按场景选型:高可用用 Keepalived+Pacemaker,HPC 重低延迟网络与 Slurm,容器化优先 kubeadm;基础环境须统一时间、主机名、ssh免密、关闭 SELinux/防火墙 、IO 调优、内核参数; 自动化 推荐 ansible 或 kubeadm;上线后必做最小验证、prometheus监控及elk/Loki 日志集中。

Linux 集群不是搭完就完事,关键得跑得稳、管得住、扩得快。核心是选对场景再动手,别一上来就 堆节点。
明确你要解决什么问题
集群类型直接决定 架构 设计:
- 高可用(HA)集群 :服务不能停,比如 数据库 主备切换、Web 服务自动故障转移。用 Keepalived + Pacemaker 或 Corosync + DRBD 搭配即可,2~3 台物理机足够起步。
- 高性能计算(HPC)集群 :跑科学计算、渲染、ai 训练。重点在低延迟网络(InfiniBand 或 RDMA)、统一存储(Lustre/NFS)、作业调度(Slurm 最常用)。别省网卡,万兆起步,交换机要支持 Jumbo Frame。
- 容器化集群(如 K8s):微服务、CI/CD、弹性伸缩。优先用 kubeadm 或 rancher 快速部署,节点 OS 精简(推荐ubuntu Server 或 Rocky Linux),禁用 swap、配置 cgroup v2、时间同步必须严格(chrony 比 ntpd 更稳)。
基础环境别跳步,5 个细节决定成败
看似简单,但 90% 的集群故障源于这里:
- 所有节点时间必须一致 :用 chrony 配置统一 NTP 源,server 端加iburst,client 端加makestep,避免启动时时间跳变导致etcd 或 K8s 组件拒绝加入。
- 主机名 +SSH 免密 +hosts 三件套齐备:hostnamectl 设置静态名,各节点互相能 ping 通短名(如node1),~/.ssh/config 配好别名,/etc/hosts 里每行一个 IP+ 全限定名 + 短名。
- 关闭 SELinux 和 防火墙 (或精确放行 端口 ):临时关用setenforce 0,永久关改/etc/selinux/config;firewalld 如果不开,至少放行 etcd(2379-2380)、K8s(6443、10250 等)、Slurm(6817、6818)对应 端口。
- 磁盘 IO 策略调优 :SSD 加deadline 或none,HDD 用 cfq;挂载加noatime,nodiratime, 分布式 存储节点建议用 XFS 格式。
- 内核参数预设:/etc/sysctl.conf 里至少加上net.ipv4.ip_forward=1、vm.swappiness=1、fs.file-max=655360,然后 sysctl - p 生效。
自动化部署别手敲,用 工具 省力又防错
手动配 10 台还能忍,20 台起必须上自动化:
- Ansible 最轻量实用:写一个 playbook 统一装 chrony、配 hosts、关 selinux、调内核参数,再按角色分 task(control-plane.yml / worker.yml),一套命令全节点同步执行。
- kubernetes场景直接用 kubeadm + config file:生成 kubeadm.yaml 固化 Pod 网段、证书有效期、containerd 配置,避免每次 init 参数输错。
- HPC 集群用 Ansible + Slurm cookbook:自动部署 slurmctld(控制节点)、slurmd(计算节点)、共享 NFS home 目录,连 sbatch 测试脚本都一起下发。
上线后第一件事:验证 + 监控闭环
集群不是 deploy 完就结束,得看得见、判得准、动得快:
- 立刻跑最小验证流 :HA 集群切一次 VIP、K8s 集群 kubectl get nodes + 创建一个 busybox pod、Slurm 集群 srun –pty /bin/bash 看能否进计算节点。
- 必接基础监控 :Prometheus + Node Exporter 抓节点级指标(CPU、内存、磁盘、网络),加 Alertmanager 配 微信 / 钉钉 告警;K8s 再加 kube-state-metrics 和cadvisor;Slurm 用 slurm-exporter。
- 日志集中不靠 grep:用 Fluentd 或 filebeat 把各节点 /var/log/messages、journal 日志推到 ELK 或 Loki,搜索“failed”、“timeout”、“connection refused”能快速定位集群级异常。
基本上就这些。不复杂但容易忽略——先理清目标,再抠实基础,接着用 工具 固化流程,最后让监控替你盯梢。跑起来,再慢慢加功能。