一、介绍:
1、本博客Corosync + Pacemaker + psc + HA-proxy 实现业务高可用,以httpd 服务实现高可用为例。
2、架构思路
a、三台web 节点,功能:全部安装 Corosync + Pacemaker + psc + HA-proxy
b、HA-proxy 绑定 和监听VIP 80端口,负载web 节点的 实际IP的80端口
c、httpd 服务监控本地实际IP的80端口
3、上一博客: Centos 7 下 Corosync + Pacemaker + psc 实现 httpd 服务高可用
二、安装、配置 (继续上一博客继续配置)
1、删除现有的WebSite 资源
# pcs resource delete WebSite
2、安装 haproxy 服务 (所有节点)
# yum -y install haproxy
3、配置 httpd 服务监控本地网卡80服务 (所有节点)
# vim /etc/httpd/conf/httpd.conf
Listen 80 修改为 Listen 网卡IP:80
# systemctl restart httpd
4、配置 haproxy (所有节点)
# vim /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
# listen httpd server
#---------------------------------------------------------------------
listen httpd_cluster
bind 虚拟ip:
balance roundrobin
option tcpka
option httpchk
option tcplog
server ceph1 ceph1: check port inter rise fall
server ceph2 ceph2: check port inter rise fall
server ceph3 ceph3: check port inter rise fall
5、创建 haproxy 资源
# pcs resource create haproxy systemd:haproxy op monitor interval="5s"
资源已创建、启动,但是有报错,这是因为在其他节点的haproxy配置中监控的 虚拟IP并没有落在这些节点上。
6、配置 资源和 VIP的关系。
1、资源和VIP 绑定,保持 VIP 和资源 始终在同一节点启动
# pcs constraint colocation add haproxy with VIP INFINITY
2、VIP 资源启动后,启动 haproxy 资源
# pcs constraint order VIP then haproxy
7、配置第5步之后,清除集群报错重新启动haproxy资源,集群恢复正常。
1、清除集群报错
# pcs resource cleanup
2、重启 haproxy资源
# pcs resource restart haproxy
8、在集群节点小于2个,无法仲裁时,忽略仲裁,保证业务提供(集群所有节点均正常时配置)
# pcs property set no-quorum-policy=ignore
到此处,httpd 的 服务高可用全部配置完成。
三、测试
结果如下:(轮询方式负载)
另外,如果节点允许,可以 禁用网卡、重启服务器等方式暴力测试 集群以及服务高可用情况。