Haproxy+Pacemaker高可用集群

1 实验环境的准备

(1)实验前先关闭防火墙和selinux

(2)配置SSH,实现server1和server4的免密登陆

  • 生成ssh公钥认证所需的公钥和私钥文件: ssh-keygen

在这里插入图片描述

  • 把本地的ssh公钥文件安装到远程主机:ssh-copy-id server4

在这里插入图片描述
(3)server1和server4关闭haproxy,并设置开机不启动

systemctl disable --now  haproxy
systemctl status haproxy

在这里插入图片描述

2 在集群各节点安装程序包

在集群的server1和server4安装相关软件

yum install -y pacemaker  pcs psmisc  policycoreutils-python -y

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(1)网络仓库的配置

[dvd]
name=rhel7.6
baseurl=http://172.25.12.250/rhel7.6
gpgcheck=0
[dvd1]
name=HighAvailability
baseurl=http://172.25.12.250/rhel7.6/addons/HighAvailability
gpgcheck=0
  • server1和server4安装集群软件
yum install -y pacemaker  pcs psmisc  policycoreutils-python -y

在这里插入图片描述

(2)在server1和server4节点启动pcsd,并设置为开机自动启动:systemctl enable --now pcsd.service

3 利用pcs来快速创建启动集群

hacluster用户在安装pcs时自动创建

(1)在集群各节点上给hacluster用户设定相同的密码

  • 在server1和server4节点更改hacluster用户的密码:passwd hacluster

在这里插入图片描述
在这里插入图片描述
注意: 也可以新建一个用户,但是在集群各节点上必须有一个一模一样的账号,而且账号的密码也必须相同

(2)集群各节点之间进行认证

  • 验证hacluster用户:pcs cluster auth server1 server4

注意: 输入的用户名必须为pcs自动创建的hacluster用户,否则不能添加成功
在这里插入图片描述

(3)创建集群

  • 创建并启动名为mycluster的集群,其中server1、server4为集群成员:
pcs cluster setup --name mycluster server1 server4

在这里插入图片描述
(4)开机自动开启pacemaker(资源管理)和corosync(心跳监测)服务

  • 启动集群所有节点:pcs cluster start --all

在这里插入图片描述

  • 集群开机启动:pcs cluster enable --all

在这里插入图片描述

  • 查看节点状态:corosync-cfgtool -s

在这里插入图片描述

  • 检查pacemaker服务:ps axf

在这里插入图片描述

4 pcs管理集群

(1)查看集群的状态:pcs status

在这里插入图片描述

(2)检查集群服务是否正常:crm_verify -LV

在这里插入图片描述(3)没有 Fencing设备时,禁用STONITH 组件功能在 stonith-enabled=“false”

  • 关闭了stonith选项以后,再次验证集群配置就没有报任何错误
    在这里插入图片描述

(4)查看pcs的帮助信息
在这里插入图片描述

	查看默认资源管理器:pcs resource standards
	查看资源的提供者:pcs resource providers 
	查看资源代理的详细信息: pcs resource agents ocf:heartbeat

在这里插入图片描述

5 pcs创建集群资源

(1)给集群添加虚拟的VIP资源

  • 利用ocf:heartbeat:IPaddr定义一个vip资源
pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.12.100 op monitor interval=30s

在这里插入图片描述

  • 关闭集群中的server1:pcs cluster stop server1
  • 在server4上查看集群的状态信息:pcs status,可以看到server1设置为stop状态以后,运行在server1上的资源也随之迁往其他节点

在这里插入图片描述

  • 开启集群中的server1:pcs cluster start server1
  • 查看集群的状态信息:pcs status,server1设置为start状态以后,server1的状态为Online,但是运行在server4上的资源并不会迁移

在这里插入图片描述

  • 让server1失效并处于待机状态:pcs node standby,可以看到server1设置为standby状态以后,运行在server1上的资源也随之迁往其他节点

在这里插入图片描述

  • 让失效的服务器重新回到活跃状态: pcs node unstandby,server1设置为 unstandby状态以后,server1的状态为Online,但是运行在server4上的资源并不会迁移

在这里插入图片描述

(2)给集群添加haproxy负载均衡服务资源

 pcs resource create haproxy systemd:haproxy op monitor interval=60s

在这里插入图片描述

(3)添加资源组: pcs resource group add hagroup vip haproxy,将资源整合到一个组中,实现在同一台服务器提供服务,定义运行的HAProxy和VIP必须在同一节点上,以及启动顺序

在这里插入图片描述

5 测试

(1) 禁用eth0:

  • server4:ip link set down eth0,运行在server1上的资源迁往到server4

在这里插入图片描述
在真机上访问VIP:172.25.12.100,此时提供服务的是server1
在这里插入图片描述

  • 恢复server4的方法,手动重启server4,在下节可以通过配置fence设备自动重启server4

(2)停止集群中的server1服务器

  • 关闭集群中的server1:pcs cluster stop server1

在这里插入图片描述

  • 查看集群的状态:pcs status

关闭集群中的server1后,server2自动开始接管,实现了高可用
在这里插入图片描述

并且此时server4会自动添加VIP,启动haproxy
在这里插入图片描述

在真机上访问VIP:172.25.12.100

在这里插入图片描述

(3)删除server的4的VIP

	ip addr del 172.25.12.100/24 dev eth0
	pcs status

查看集群的状态,此时server4的vip显示失败,会且会显示错误的日志信息
在这里插入图片描述

30s之后,server4的vip会自动添加,实现了高可用

在这里插入图片描述

在这里插入图片描述
恢复集群中的server1:pcs cluster start server1

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现 HAProxy+Keepalived 高可用需要按照以下步骤进行: 1. 安装 HAProxy 和 Keepalived 在主服务器和备份服务器上安装 HAProxy 和 Keepalived。 2. 配置 HAProxy 编辑 HAProxy 配置文件,配置监听端口和后端服务器信息,并启用统计页面。例如: ``` global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull option forwardfor option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen webfarm bind 0.0.0.0:80 mode http stats enable stats uri /haproxy balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:localhost server web1 192.168.0.1:80 check server web2 192.168.0.2:80 check ``` 3. 配置 Keepalived 编辑 Keepalived 配置文件,配置虚拟 IP 地址、HAProxy 的状态检测方式和状态转移时的优先级。例如: ``` vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.0.100/24 } track_script { chk_haproxy } } ``` 4. 启动 HAProxy 和 Keepalived 在两台服务器上分别启动 HAProxy 和 Keepalived。 5. 测试高可用 访问虚拟 IP 地址,检查是否能够正常访问,并手动切换主备服务器,检查是否能够自动切换。 注意:以上仅为简单示例,请根据实际情况进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值