keepalived+haproxy高可用部署

环境

Keepalived + haproxy主:

Ip:192.1.10.119/24

Hostname:Master

Keepalived + haproxy备:

Ip:192.1.10.120/24

Hostname:Backup

Nginx:

Ip:192.1.10.121/24

Hostname:WEB1

Keepalived 部署

一、安装yum源(主、备)

yum -y install keepalived

二、配置

主:

[root@Master keepalived]# cat keepalived.conf

global_defs {

    router_id lb-master-192.1.10.119

}

#vrrp_script check-haproxy {

#    script "killall -0 haproxy"

#    interval 5

#    weight -60

#}

vrrp_instance VI-kube-master {

    state MASTER

    priority 120

    unicast_src_ip 192.1.10.119

    unicast_peer {

        192.1.10.120

    }

    dont_track_primary

    interface ens33

    virtual_router_id 222

    advert_int 3

    track_script {

        check-haproxy

    }

    virtual_ipaddress {

        192.1.10.111

    }

}

[root@Master keepalived]#

备:

[root@Backup keepalived]# more keepalived.conf

global_defs {

    router_id lb-backup-192.1.10.120

}

#vrrp_script check-haproxy {

#    script "killall -0 haproxy"

#    interval 5

#    weight -60

#}

vrrp_instance VI-kube-master {

    state BACKUP

    priority 92

    unicast_src_ip 192.1.10.120

    unicast_peer {

        192.1.10.119

    }

    dont_track_primary

    interface ens33

    virtual_router_id 222

    advert_int 3

    track_script {

        check-haproxy

    }

    virtual_ipaddress {

        192.1.10.111

    }

}

三、启动keepalived

Systemctl start keepalived

四、验证keepalived

查看主节点ip出现了VIP 地址192.1.10.111

停止主节点keepalived,再查看备用

[root@Master keepalived]# systemctl stop keepalived

可见备节点出现了VIP,实现了VIP漂移。

nginx部署

一、联网状态下下载Nginx安装包(也可以将网址复制到浏览器下载)

[root@Web1 ~]# mkdir /root/nginx

[root@Web1 ~]# cd /root/nginx

[root@Web1 nginx]# wget http://nginx.org/download/nginx-1.18.0.tar.gz

yum -y install gcc openssl-devel pcre-devel zlib-devel

二、解压安装包

tar zxvf nginx-1.18.0.tar.gz

  • 配置编译安装

cd nginx-1.18.0

./configure --prefix=/usr/local/nginx

make && make install

./nginx

三、验证安装

[root@Web1 nginx]# curl  -I 192.1.10.121

HTTP/1.1 200 OK

Server: nginx/1.18.0

Date: Sat, 18 Feb 2023 08:43:35 GMT

Content-Type: text/html

Content-Length: 5

Last-Modified: Sat, 18 Feb 2023 07:53:46 GMT

Connection: keep-alive

ETag: "63f0840a-5"

Accept-Ranges: bytes

四、修改网页内容

[root@Web1 ~]cd  /usr/local/nginx/html

[root@Web1 html]# echo Web1 > index.html

五、重启nginx后验证

[root@Web1 sbin]# cd /usr/local/nginx/sbin

[root@Web1 sbin]# ./nginx -s reload

[root@Web1 sbin]# curl 192.1.10.121

Web1

以上nginx验证成功

haproxy部署

一、安装包下载

https://www.haproxy.org/download/1.4/src

我安装版本如图

二、安装haproxy(主备步骤一致)

[root@Master ~]# mkdir haproxy

[root@Master haproxy]# tar -zxvf haproxy-1.4.24.tar.gz

[root@Master haproxy-1.4.24]# make TARGET=linux26 #内核版本大于2.6的使用

#我的内核版本:

[root@Master haproxy]# uname -a

Linux Master 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

[root@Master haproxy-1.4.24]#make install

三、配置修改

[root@Master haproxy-1.4.24]#mkdir /etc/haproxy

[root@Master haproxy-1.4.24]cp examples/haproxy.cfg /etc/haproxy/  #将软件包中的配置文件模板复制到haproxy目录中

vim /etc/haproxy/haproxy.cfg   #修改haproxy.cfg配置参数

下面两项前面加上注释

#chroot /usr/share/haproxy     #固有目录,可注释掉

#redispatch       #当使用了cookie时,haproxy将会将其请求的后端服务器的serverID插入到cookie中,以保证会话的SESSION持久性;而此时,如果后端的服务器宕掉了,但是客户端的cookie是不会刷新的,如果设置此参数,将会将客户的请求强制定向到另外一个后端server上,以保证服务的正常。需要注释掉

删除将原来的listen配置项,添加新配置:

listen webcluster 0.0.0.0:80

       option httpchk GET /index.html

       balance roundrobin

       server nginx1 192.1.10.121:80 check inter 2000 fall 3

优化服务启动:

cd /etc/haproxy

[root@Master haproxy]# cp haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy

[root@Master ~]#chmod 755 /etc/init.d/haproxy

[root@Master ~]#chkconfig --add /etc/init.d/haproxy

[root@Master ~]#ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

[root@Master ~]#mkdir /etc/haproxy/errors

[root@Master ~]#cd /etc/haproxy/errors

[root@Master errors]#touch 503.http

[root@Master errors]# ll

总用量 0

-rw-r--r--. 1 root root 0 2月  18 16:08 503.http

四、启动haproxy

systemctl start haproxy

五、验证是否haproxy生效

#由图可见,VIP在主上,主备访问VIP可看见Web1主机的网页

[root@Master ~]# curl 192.1.10.111

Web1

[root@Backup ~]# curl 192.1.10.111

Web1

#本地windows物理机访问

#停止Master的keepalived

#由图可见,VIP在备上,主备访问VIP可看见Web1主机的网页

[root@Master ~]# curl 192.1.10.111

Web1

[root@Backup ~]# curl 192.1.10.111

Web1

#本地windows物理机访问

以上实验可见关闭主服务器后,漂移ip由备份服务器承担 ,继续工作,仍然可以访问后方的http网站

HAProxy提供高可用、负载均衡以及基于TCP(第四层)和HTTP(第七层)的应用的代理

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值