实用网络站
白蓝主题五 · 清爽阅读
首页  > 电脑进阶

CentOS集群部署教程:手把手搭建高可用服务器环境

准备阶段:明确目标与网络规划

在开始之前,得想清楚为什么要搭集群。比如公司网站访问量上来了,单台服务器扛不住,就得用多台机器分担负载。CentOS作为稳定可靠的Linux发行版,常被用于搭建这类生产环境。这里以3台CentOS 7服务器为例,IP分别为192.168.1.10(主节点)、192.168.1.11和192.168.1.12(从节点),操作系统都已安装完毕且能互相ping通。

确保每台机器的SELinux关闭或设为宽容模式,防火墙开放必要的端口。可以编辑配置文件:

sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config

然后重启或者临时执行 setenforce 0 即可生效。

配置SSH免密登录

集群管理中频繁的远程操作必须靠SSH密钥认证来简化流程。在主节点生成密钥对:

ssh-keygen -t rsa -b 2048

一路回车后,将公钥复制到所有从节点:

ssh-copy-id root@192.168.1.11
ssh-copy-id root@192.168.1.12

完成后,主节点就能无密码登录各个从节点了,这对后续自动化脚本执行非常关键。

时间同步不可少

服务器之间时间差太大容易导致任务调度错乱、日志难以排查。使用NTP服务统一时间。安装chrony:

yum install chrony -y
systemctl enable chronyd
systemctl start chronyd

检查同步状态:

chronyc sources -v

看到^*开头的行说明已经正常同步。三台机器都做一遍这个操作,保证时间基本一致。

安装并配置Pacemaker + Corosync

这是实现高可用集群的核心组件。Pacemaker负责资源管理,Corosync提供节点间通信。在所有节点上安装:

yum install pacemaker corosync pcs fence-agents-all -y

启动并启用服务:

systemctl enable pcsd
systemctl start pcsd

首次使用需要设置hacluster用户的密码:

passwd hacluster

这个用户是集群管理专用账户,密码要统一。

创建集群并启动

在主节点执行认证和集群初始化:

pcs cluster auth 192.168.1.10 192.168.1.11 192.168.1.12 -u hacluster -p your_password_here
pcs cluster setup --name mycluster 192.168.1.10 192.168.1.11 192.168.1.12
pcs cluster start --all
pcs cluster enable --all

这时候查看集群状态:

pcs status

如果显示三个节点都在运行,并且有正常选举出的DC(Designated Controller),那就说明集群基础架构起来了。

添加一个虚拟IP资源测试

为了让外部访问能自动切换,我们加一个浮动IP。假设你想用192.168.1.100作为对外服务地址:

pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s

执行完之后,任意时刻只有一个节点持有这个IP。你可以通过 ping 192.168.1.100 来验证连通性,再手动停掉当前拥有该IP的节点,看是否自动漂移到另一台。

加入Web服务资源

现在让集群真正跑起业务。先在所有节点安装httpd:

yum install httpd -y
echo "<h1>Node: $(hostname)</h1>" > /var/www/html/index.html

然后把httpd也纳入集群管理:

pcs resource create webserver systemd:httpd op monitor interval=1min

为了让网页服务和虚拟IP绑定在一起运行,建立一个资源组:

pcs resource group add webservice_group virtual_ip webserver

这样每次切换时,IP和服务会一起迁移。打开浏览器访问192.168.1.100,刷新几次可能会看到不同主机名返回的内容,这正是负载分散的表现。

监控与日常维护命令

平时查问题常用几个命令。看整体状态:

pcs status

列出所有资源:

pcs resource

强制关停某个节点进行维护:

pcs cluster standby 192.168.1.11

恢复上线:

pcs cluster unstandby 192.168.1.11

这些操作不需要停整个集群,适合轮流升级软件或打补丁。