首页主机资讯如何在CentOS中进行集群配置

如何在CentOS中进行集群配置

时间2025-11-26 12:52:03发布访客分类主机资讯浏览1123
导读:CentOS 集群配置实战指南 一、方案选型与准备 常见场景与组件 高可用服务集群:使用 Corosync(集群通信)+ Pacemaker(资源管理)+ pcs(管理工具)+ fence-agents(隔离设备代理),适合 Apach...

CentOS 集群配置实战指南

一、方案选型与准备

  • 常见场景与组件
    • 高可用服务集群:使用 Corosync(集群通信)+ Pacemaker(资源管理)+ pcs(管理工具)+ fence-agents(隔离设备代理),适合 Apache/Nginx、MySQL、PostgreSQL 等关键服务的高可用与自动故障转移。
    • 容器编排集群:使用 Kubernetes(kubeadm/kubelet/kubectl),适合大规模、弹性伸缩的微服务部署。
    • 数据缓存集群:使用 Redis Cluster,适合高吞吐、低延迟的数据缓存与分布式存储。
  • 基础要求
    • 至少 2 台(生产建议 3 台)服务器,系统建议 CentOS 7/8,网络互通、静态 IP、主机名可解析。
    • 时间同步(NTP/chrony)、SSH 互信、必要的防火墙放行或临时关闭(测试环境)。

二、高可用集群 Corosync + Pacemaker 实操步骤

  • 环境规划示例
    • 节点:node1 192.168.122.168node2 192.168.122.169
    • 虚拟 IP(VIP):192.168.122.101/24
  • 安装与基础配置
    • 安装软件包(所有节点)
      • yum install -y pacemaker pcs corosync fence-agents-all
    • 启动 pcsd 并设置开机自启
      • systemctl start pcsd & & systemctl enable pcsd
    • 统一 hacluster 用户密码(所有节点)
      • passwd hacluster
    • 主机名与解析
      • hostnamectl set-hostname node1(node2 同理)
      • /etc/hosts 添加:192.168.122.168 node1、192.168.122.169 node2
    • 时间同步(示例)
      • ntpdate 172.16.0.1(或配置 chrony)
    • 防火墙(二选一)
      • 测试环境:systemctl disable --now firewalld;SELinux 可临时设为 permissive
      • 生产环境:firewall-cmd --permanent --add-service=high-availability & & firewall-cmd --reload
  • 认证与创建集群
    • 认证节点
      • pcs host auth node1 node2 -u hacluster -p < your_password>
    • 创建并启动集群
      • pcs cluster setup my-hacluster node1 node2
      • pcs cluster start --all & & pcs cluster enable --all
      • pcs status(查看集群与节点状态)
  • 配置资源与 VIP
    • 创建 VIP(示例)
      • pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.122.101 cidr_netmask=24 op monitor interval=30s
    • 创建业务资源(示例:Apache)
      • pcs resource create httpd ocf:heartbeat:httpd op start timeout=60s op stop timeout=60s op monitor timeout=30s
    • 约束与顺序(可选)
      • pcs constraint colocation add VIP with httpd INFINITY
      • pcs constraint order VIP then httpd
  • 隔离与脑裂防护(STONITH)
    • 生产环境应配置真实 fencing(如 IPMI、vSphere
    • 测试环境可临时关闭:pcs property set stonith-enabled=false
  • 验证与维护
    • 查看状态:pcs status、crm_mon -1
    • 故障演练:在业务运行中停止某节点或 kill httpd,验证 VIP 漂移 与自动恢复。

三、Kubernetes 高可用集群搭建简述

  • 准备与安装
    • 所有节点:yum install -y kubeadm kubelet kubectl & & systemctl enable --now kubelet
    • 规划 Pod 网段(示例):10.244.0.0/16
  • 初始化控制平面(在首个 Master 节点)
    • kubeadm init --pod-network-cidr=10.244.0.0/16
    • 按提示配置 kubectl(拷贝 admin.conf 到 $HOME/.kube/config)
  • 安装网络插件(示例:Calico)
    • kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 加入工作节点
    • 使用 kubeadm init 输出的 join 命令,包含 tokendiscovery-token-ca-cert-hash
  • 验证
    • kubectl get nodes、kubectl get pods -A。

四、Redis Cluster 集群搭建简述

  • 准备与配置
    • 建议至少 6 个实例3 主 3 从);为每个实例准备配置(示例端口 7000–7002
    • /etc/redis-cluster/redis-7000.conf 关键项:
      • port 7000
      • cluster-enabled yes
      • cluster-config-file nodes-7000.conf
      • cluster-node-timeout 5000
      • appendonly yes
  • 启动实例
    • redis-server /etc/redis-cluster/redis-7000.conf
    • redis-server /etc/redis-cluster/redis-7001.conf
    • redis-server /etc/redis-cluster/redis-7002.conf
  • 创建集群
    • redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1
  • 验证
    • redis-cli --cluster check 127.0.0.1:7000(状态应为 ok)

五、常见问题与最佳实践

  • 脑裂与隔离
    • 生产环境务必启用 STONITH/fencing,避免共享存储场景下数据损坏;测试环境临时关闭仅用于验证功能。
  • 时间同步与解析
    • 全集群 NTP/chrony 同步与 /etc/hosts 解析是稳定性的前提,避免因时间漂移或解析失败导致异常。
  • 防火墙与 SELinux
    • 测试可临时关闭;生产建议仅放行 high-availability 等相关服务或端口,并合理设置 SELinux 策略。
  • 资源约束与粘性
    • VIP 与业务资源 设置 colocation(同机)order(启动顺序),必要时设置 resource-stickiness 减少不必要的迁移。
  • 监控与告警
    • 结合 Prometheus + Grafana 监控集群组件(corosync/pacemaker/kubelet/redis)与业务指标,配置阈值告警,便于快速定位故障。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在CentOS中进行集群配置
本文地址: https://pptw.com/jishu/756602.html
centos软连接跨盘区可行吗 CentOS环境下如何解决常见问题

游客 回复需填写必要信息