温馨提示×

CentOS环境如何进行集群搭建

小樊
34
2025-12-19 17:41:57
栏目: 智能运维

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 statuspcs 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 INFINITYpcs 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 nodeskubectl 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.shstart-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 statuscrm_verify -L -V 定位资源与约束问题。
  • 变更管控:资源新增/变更前先 pcs cluster standby <node> 隔离节点,变更后逐步恢复并回归生产。
    这些实践能显著提升集群的稳定性与可维护性,并缩短故障定位时间。

0