CentOS 环境集群搭建实操指南
一、常见场景与选型
- 高可用服务集群(HA):使用 Corosync + Pacemaker + pcs 管理资源(如 VIP、Apache、数据库),适合对业务连续性要求高的场景。
- Kubernetes 容器集群:使用 kubeadm 搭建,配合 cri-dockerd 或 containerd,网络插件如 Calico。
- 大数据集群:如 Hadoop HDFS/YARN,适合海量数据存储与离线计算。
- 分布式缓存集群:如 Redis Cluster,提供内存数据高可用与分片。
- 分布式键值存储:如 etcd 集群,常用于服务发现与配置共享。
以上方案在 CentOS 上均有成熟实践路径,可按业务类型选择或组合使用。
二、通用前置准备
- 节点规划:至少 2 台(建议 3 台 提升仲裁与容错),配置静态 IP、统一 NTP/chrony 时间同步、主机名解析(/etc/hosts 或 DNS)。
- 网络与安全:开放集群所需端口或临时关闭防火墙/SELinux(仅测试环境);生产环境建议精细放行。
- 账户与互通:创建 hacluster 管理用户并设置统一密码;配置 SSH 互信 便于运维。
- 共享存储(可选):如 NFS/iSCSI/DRBD,用于共享数据或仲裁盘。
这些准备能显著降低后续组件部署与联调的复杂度。
三、高可用集群搭建步骤(Corosync + Pacemaker + pcs)
- 安装组件(所有节点)
- 执行:
yum install -y pacemaker pcs corosync fence-agents-all
- 启动 pcsd 并设置开机自启(所有节点)
- 执行:
systemctl enable --now pcsd
- 统一 hacluster 密码(所有节点)
- 执行:
passwd hacluster(示例统一为 centos)
- 节点认证与建集群(任选一节点执行)
- 认证:
pcs cluster auth node1 node2 node3 -u hacluster -p centos
- 建集群:
pcs cluster setup --start --name cluster0 node1 node2 node3
- 开机自启:
pcs cluster enable --all
- 查看状态:
pcs cluster status、pcs status
- 防火墙放行(若启用 firewalld)
- 执行:
firewall-cmd --permanent --add-service=high-availability && firewall-cmd --reload
- Fencing/STONITH(生产必配)
- 无硬件设备可临时:
pcs property set stonith-enabled=false(仅测试)
- 添加资源示例
- 浮动 IP:
pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.122.170 cidr_netmask=24 op monitor interval=30s
- Apache:
pcs resource create WEB systemd:httpd op monitor interval=60s
- 亲和与顺序:
pcs constraint colocation add WEB with VIP INFINITY;pcs constraint order promote VIP then start WEB
- 验证与演练
- 查看资源:
pcs status resources
- 故障转移:
pcs cluster standby node1 观察 VIP 与 WEB 是否漂移至其他节点;恢复:pcs cluster unstandby node1
以上流程覆盖从安装、认证、建集群到资源配置与验证的完整闭环,适合在 CentOS 7/8 环境快速落地 HA。
四、其他常见集群快速路径
- Kubernetes(kubeadm)
- 准备:同步系统时间、配置主机名解析、规划网络与容器运行时(如 cri-dockerd)。
- 初始化:
kubeadm init(按提示完成 kubeconfig 与网络插件安装,如 Calico)。
- 扩容:
kubeadm join ... 将 Worker 加入集群。
- 验证:
kubectl get nodes、kubectl get pods -A。
- Hadoop HDFS 集群
- 安装 JDK 8,配置环境变量;下载解压 Hadoop。
- 编辑 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。
- 配置 SSH 免密,主节点执行
hdfs namenode -format。
- 启动:
start-dfs.sh、start-yarn.sh;验证:jps 查看进程与健康状态。
- Redis Cluster
- 至少 6 个实例(3 主 3 从),为每个实例准备配置(端口、cluster-enabled、appendonly 等)。
- 启动实例后创建集群:
redis-cli --cluster create <ip:port> ... --cluster-replicas 1
- 校验:
redis-cli --cluster check <ip:port>。
- etcd 集群
- 安装 etcd,配置数据目录与监听地址(静态或基于发现服务)。
- 启动并检查集群健康:
etcdctl endpoint health。
以上路径适合在 CentOS 上快速构建容器编排、大数据、缓存与键值存储等常见集群形态。
五、运维与排错要点
- 仲裁与节点数:奇数节点更利于仲裁;至少 3 台 可降低脑裂风险与提升稳定性。
- Fencing/STONITH:生产环境务必配置真实 fencing 设备(如 IPMI、vSphere),避免共享存储脑裂导致的数据损坏。
- 时间同步:全集群使用 NTP/chrony 保持时钟一致,避免因时间漂移引发异常。
- 日志与诊断:关注
/var/log/pacemaker.log、/var/log/corosync.log,配合 pcs status、crm_verify -L -V 定位资源与约束问题。
- 变更管控:资源新增/变更前先
pcs cluster standby <node> 隔离节点,变更后逐步恢复并回归生产。
这些实践能显著提升集群的稳定性与可维护性,并缩短故障定位时间。