热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux之LVS配置高可用集群【keepalived】

##########配置keepalived##########‘这个时候实现了故障排除,也就是健康检查’‘但是如果调度器宕机,整个集群就无法访问,所以需要高可用’#再开一台虚拟机

##########配置keepalived##########
‘这个时候实现了故障排除,也就是健康检查’
‘但是如果调度器宕机,整个集群就无法访问,所以需要高可用’

#再开一台虚拟机,用来做高可用,配置好yum源

1.源码编译keepalived

tar zxf keepalived-2.0.6.tar.gz
yum install openssl-devel -y
yum install libnl -y
yum install libnl-devel -y
yum install libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm -y
make && make install
./configure –help ##可以看到–with-init=(upstart|systemd|SYSV|SUSE|openrc)specify init type,systemd为rhel7版本

./configure –with-init=SYSV ##编译前安装gcc,openssl-devel
./configure –prefix=/usr/local/keepalived –with-init=SYSV
#编译完成后看到下面选项为yes,表示成功
Use IPVS Framework : Yes

make && make install

2.把编译好的目录scp到server4

3.配置启动脚本及配置文件 #调度器(server1和server4)都做
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived

ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ ##配置文件,脚本都做成软链接

ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

ln -s /usr/local/keepalived/etc/keepalived/ /etc/

ln -s /usr/local/keepalived/sbin/keepalived /sbin/

4.配置keepalived

#先关闭ldirectord,因为keepalived也有健康检查
#/etc/init.d/ldirectord stop
#chkconfig ldirectord off

1)先删除调度节点(server1,server4)上的vip,因为keepalived会自己加上

ip addr del 172.25.0.100/24 dev eth0

2)编辑server1(主节点)的keepalived配置文件
global_defs {
notification_email {
root@localhost ##节点宕机给谁发送邮件
}
notification_email_from keepalived@localhost ##发送人名称
smtp_server 127.0.0.1 ##发送服务器(本机)
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict ##注释掉,不然会有问题
vrrp_garp_interval 0
vrrp_gna_interval 0
}

vrrp_instance VI_1 {
state MASTER ##主节点
interface eth0
virtual_router_id 51 ##做实验时候,让学生修改此ID,每个人的都不能一样,不然会出问题
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.0.100 ##VIP
}
}

virtual_server 172.25.0.100 80 {
delay_loop 3 ##当rs报错时,尝试多少次之后才邮件告知
lb_algo rr
lb_kind DR ##DR模式
#persistence_timeout 50
protocol TCP

real_server 172.25.0.2 80 {
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.0.3 80 {
TCP_CHECK {
weight 1
connect_timeout 3
retry 3
delay_before_retry 3
}
}

}

yum install mailx -y
3)编辑备节点(server4)的配置文件
state BACKUP
priority 50 ##修改这两个选项

4)启动keepalived
/etc/init.d/keepalived start

5)测试
在物理机上访问:curl 172.25.0.100
可以看到轮询

在server1上查看日志:
vim /var/log/messages
Dec 8 16:44:15 server1 Keepalived_vrrp[7656]: (VI_1) Entering MASTER STATE
Dec 8 16:44:15 server1 Keepalived_vrrp[7656]: (VI_1) setting VIPs.

在server4上查看日志:
vim /var/log/messages
Dec 8 16:50:26 server4 Keepalived_vrrp[1090]: (VI_1) removing VIPs.
Dec 8 16:50:26 server4 Keepalived_vrrp[1090]: (VI_1) Entering BACKUP STATE (init)

关闭一台rs的http服务,再次在物理机上访问(可能稍有延迟),也不会报错
ipvsadm策略里也会把down掉的那台rs自动剔除
#vim /var/log/messages 可以看到,server2在down掉后,调度器会检测三次,三次都失败就会剔除
#也就是配置文件中delay_loop 3的作用

mail可以看到会有邮件告知哪台的down了 #(没有mail命令的话,yum install -y mailx)

#测试VIP漂移
down掉server(主节点)的keepalived服务
可以看到VIP会自动去掉,然后会漂移到server4上
服务正常访问,看日志可以看到VIP和主备切换的信息

server1再次开启keepalived,会自动接管VIP,并进入MASTER状态


推荐阅读
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文详细介绍了如何在 Django 项目中使用 Admin 管理后台,包括创建超级用户、启动项目、管理数据模型和修改用户密码等步骤。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在无网络环境下于CentOS 7系统中离线部署Nginx服务器
    nginx背景俄罗斯程序员IgorSysoev创建,于2004年NGINX首次发布,来解决C10K问题(10000并发客户端连接到单个服务器,导致服务器连接数过多崩溃的问题),是一 ... [详细]
  • centos7.3配置python2、3环境与配置各自pip
    环境:CentOS-7-x86_64-Everything-1611No.1查看CentOS对Python的默认依赖[root@cs~]#lsusrbinpython* ... [详细]
  • openssh其他版本有漏洞,需要升级,本文以我升级的机器centos6为例一、准备工作1.1检查openssh版本查看系统版本catetcre ... [详细]
author-avatar
377926138_b741aa
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有