searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

keepalived-2.0.20 编译&安装

2024-09-27 09:20:41
16
0

0.背景介绍

Keepalived是一种开源的高可用性解决方案,它可以确保系统的高可用性和负载均衡。其原理是利用VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)技术,在一个虚拟IP地址和多个实际IP地址之间实现快速的自动切换。其主要作用是在一个局域网中提供一个虚拟IP地址,同时在多台服务器之间自动地漂移实际IP地址,确保高可用性和负载均衡。
TeleDB for PostgreSQL使用keepalived的VIP高可用能力来实现RDS实例连接的高可用性。

下面是Keepalived的工作流程:

  1. 实际IP地址的状态检测:Keepalived通过检查实际IP地址的状态来判断是否需要进行切换。
  2. 虚拟IP地址的切换:当一个实际IP地址不可用时,Keepalived将虚拟IP地址切换到另一台服务器上。
  3. VRRP决策过程:在决定哪个服务器负责处理虚拟IP地址时,服务器会进行一个VRRP决策过程。在该过程中,每个服务器都会发送一个优先级值给网络中的其他服务器,使用优先级值最高的服务器来处理虚拟IP地址。

总的来说,Keepalived的作用是提供高可用性和负载均衡,它可以确保系统的持续运行和高效性,为企业提高业务的可用性和稳定性提供了极大的帮助。

1.编译

1.1 下载Keepalived安装包并检验MD5

[postgresql@evm-ch32k771ccmka53j9e40 data]$ wget keepalived-2.0.20.tar.gz #通过keepalived官网下载
HTTP request sent, awaiting response... 200 OK
Length: 1036063 (1012K) [application/octet-stream]
Saving to: ‘keepalived-2.0.20.tar.gz’
​
keepalived-2.0.20.tar.gz                                100%[============================================================================================================================>]   1012K   881KB/s    in 1.1s    
​
2023-04-27 14:52:41 (881 KB/s) - ‘keepalived-2.0.20.tar.gz’ saved [1036063/1036063]
​
[postgresql@evm-ch32k771ccmka53j9e40 data]$ md5sum keepalived-2.0.20.tar.gz 
a5966e8433b60998709c4a922a407bac  keepalived-2.0.20.tar.gz

1.2 解压&安装必要依赖

1. tar -zxvf keepalived-2.0.20.tar.gz
2. sudo yum -y install openssl-devel popt-devel net-snmp-devel gcc libnl3 libnl3-devel

1.3 编译安装keepalived包

1. cd keepalived-2.0.20
#配置编译包存放路径,支持自定义:这里为/data/keepalived
2. ./configure --prefix=/data/keepalived 
3. make && make install 
4. mkdir /data/keepalived/etc/init.d && mkdir /data/keepalived/lib
5. cp /data/keepalived-2.0.20/keepalived/etc/init.d/keepalived /data/keepalived/etc/init.d
6. rm -rf /data/keepalived-2.0.20/keepalived/etc/data/keepalived-2.0.20/keepalived/etc/keepalived.conf && touch /data/keepalived-2.0.20/keepalived/etc/data/keepalived-2.0.20/keepalived/etc/keepalived.conf
7. ldd keepalived 
    linux-vdso.so.1 (0x0000fffeb9bf0000)
    libm.so.6 => /lib64/libm.so.6 (0x0000fffeb9a50000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x0000fffeb9780000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x0000fffeb96d0000)
    libnl-genl-3.so.200 => /lib64/libnl-genl-3.so.200 (0x0000fffeb96a0000)
    libnl-3.so.200 => /lib64/libnl-3.so.200 (0x0000fffeb9650000)
    libc.so.6 => /lib64/libc.so.6 (0x0000fffeb94d0000)
    /lib/ld-linux-aarch64.so.1 (0x0000fffeb9c00000)
    libz.so.1 => /lib64/libz.so.1 (0x0000fffeb9490000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000fffeb9460000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000fffeb9420000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000fffeb93e0000)
将动态链接库cp到/data/keepalived/lib目录下,例如:cp /lib64/libm.so.6 /data/keepalived/lib

在不同操作系统(eg. ctyunos,uos以及openEuler等)执行编译后,使用ldd keepalived 来获取keepalived所依赖的动态链接文件,并且将其归档至编译好文件的lib目录下,后续执行安装时将lib目录的.so文件拷贝至系统目录中,完成多操作系统适配。

2.安装(仅用于测试手动安装)

2.1 注册系统服务

# 创建keepalived配置文件目录
1. sudo mkdir -p /etc/keepalived
# 将keepalived配置文件拷贝到etc下
2. sudo cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# 拷贝执行文件
3. sudo cp /data/keepalived/sbin/keepalived /usr/sbin/
# 将初始化脚本拷贝到系统初始化目录下
4. sudo cp /data/keepalived/etc/init.d/keepalived /etc/init.d/
# 将keepalived系统配置文件拷贝到etc下
5. sudo cp /data/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# 添加可执行权限
6. sudo chmod +x /etc/init.d/keepalived
# 添加keepalived到开机启动
7. sudo chkconfig --add keepalived
   sudo chkconfig keepalived on
# 查看添加到chkconfig的自启动服务(可不执行)
8. sudo chkconfig --list
# 复制所有的动态链接库到/lib64目录下,重复的动态链接库不覆盖
9. sudo cp /data/keepalived/lib/* /lib64

2.2 配置keepalived文件(使用默认配置可跳过)

! Configuration File for keepalived
global_defs {                                     #全局定义部分
    notification_email {                          #设置报警邮件地址,可设置多个
        acassen@firewall.loc                      #接收通知的邮件地址
    }                        
    notification_email_from test0@163.com         #设置 发送邮件通知的地址
    smtp_server smtp.163.com                      #设置 smtp server 地址,可是ip或域名.可选端口号 (默认25)
    smtp_connect_timeout 30                       #设置 连接 smtp server的超时时间
    router_id LVS_DEVEL                           #主机标识,用于邮件通知
    vrrp_skip_check_adv_addr                   
    vrrp_strict                                   #严格执行VRRP协议规范,此模式不支持节点单播
    vrrp_garp_interval 0                       
    vrrp_gna_interval 0     
    script_user keepalived_script                 #指定运行脚本的用户名和组。默认使用用户的默认组。如未指定,默认为keepalived_script 用户,如无此用户,则使用root
    enable_script_security                        #如过路径为非root可写,不要配置脚本为root用户执行。
}       
 
vrrp_script chk_nginx_service {                   #VRRP 脚本声明
    script "/etc/keepalived/chk_nginx.sh"         #周期性执行的脚本
    interval 3                                    #运行脚本的间隔时间,秒
    weight -20                                    #权重,priority值减去此值要小于备服务的priority值
    fall 3                                        #检测几次失败才为失败,整数
    rise 2                                        #检测几次状态为正常的,才确认正常,整数
    user keepalived_script                        #执行脚本的用户或组
}                                             
 
vrrp_instance VI_1 {                              #vrrp 实例部分定义,VI_1自定义名称
    state MASTER                                  #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP
    interface ens33                               #网卡设置,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
    virtual_router_id 51                          #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
    priority 100                                  #定义优先级,数字越大,优先级越高。
    advert_int 1                                  #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
    authentication {                              #设置验证类型和密码,两个节点必须一致
        auth_type PASS                        
        auth_pass 1111                        
    }                                         
    virtual_ipaddress {                           #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.119.130                       
    }
    track_script {                                #脚本监控状态
        chk_nginx_service                         #可加权重,但会覆盖声明的脚本权重值。chk_nginx_service weight -20
    }
        notify_master "/etc/keepalived/start_haproxy.sh start"  #当前节点成为master时,通知脚本执行任务
        notify_backup "/etc/keepalived/start_haproxy.sh stop"   #当前节点成为backup时,通知脚本执行任务
        notify_fault  "/etc/keepalived/start_haproxy.sh stop"   #当当前节点出现故障,执行的任务; 
}                                             
 
virtual_server 192.168.119.130 80  {          #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
    delay_loop 6                              #每隔6秒查询realserver状态
    lb_algo rr                                #后端调试算法(load balancing algorithm)
    lb_kind DR                                #LVS调度类型NAT/DR/TUN
    #persistence_timeout 60                   同一IP的连接60秒内被分配到同一台realserver
    protocol TCP                              #用TCP协议检查realserver状态
    real_server 192.168.119.120 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }                                     
    }                                         
    real_server 192.168.119.121 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }                                     
    }                                         
}                                             
 
vrrp_instance VI_2 {                          #vrrp 实例部分定义,VI_1自定义名称
    state   BACKUP                            #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP 分别表示(主|备)
    interface ens33                           #网卡设置,绑定vip的子接口,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
    virtual_router_id 52                      #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
    priority 90                               #定义优先级,数字越大,优先级越高。
    advert_int 1                              #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
    authentication {                          #设置验证类型和密码,两个节点必须一致
        auth_type PASS                        
        auth_pass 1111                        
    }                                         
    virtual_ipaddress {                       #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.119.131                       
    }                                         
}                                             
 
virtual_server 192.168.119.131 80 {           #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
    delay_loop 6                              #每隔6秒查询realserver状态
    lb_algo rr                                #后端调试算法(load balancing algorithm)
    lb_kind DR                                #LVS调度类型NAT/DR/TUN
    #persistence_timeout 60                   #同一IP的连接60秒内被分配到同一台realserver
    protocol TCP                              #用TCP协议检查realserver状态
    real_server 192.168.119.120 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }                                     
    }                                         
    real_server 192.168.119.121 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }
    }
}

2.3 keepalived启停/状态查询

# Keepalived服务启动
1. systemctl start keepalived 或者 service keepalived start
# 停止keepalived服务
2. systemctl stop keepalived 或者 service keepalived stop
# 重启keepalived服务
3. systemctl restart keepalived 或者 service keepalived restart
# 查看keepalived服务运行情况
4. ps -ef | grep keepalived 或者 systemctl status keepalived 或者 service keepalived status
0条评论
0 / 1000
谢****颖
1文章数
0粉丝数
谢****颖
1 文章 | 0 粉丝
谢****颖
1文章数
0粉丝数
谢****颖
1 文章 | 0 粉丝
原创

keepalived-2.0.20 编译&安装

2024-09-27 09:20:41
16
0

0.背景介绍

Keepalived是一种开源的高可用性解决方案,它可以确保系统的高可用性和负载均衡。其原理是利用VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)技术,在一个虚拟IP地址和多个实际IP地址之间实现快速的自动切换。其主要作用是在一个局域网中提供一个虚拟IP地址,同时在多台服务器之间自动地漂移实际IP地址,确保高可用性和负载均衡。
TeleDB for PostgreSQL使用keepalived的VIP高可用能力来实现RDS实例连接的高可用性。

下面是Keepalived的工作流程:

  1. 实际IP地址的状态检测:Keepalived通过检查实际IP地址的状态来判断是否需要进行切换。
  2. 虚拟IP地址的切换:当一个实际IP地址不可用时,Keepalived将虚拟IP地址切换到另一台服务器上。
  3. VRRP决策过程:在决定哪个服务器负责处理虚拟IP地址时,服务器会进行一个VRRP决策过程。在该过程中,每个服务器都会发送一个优先级值给网络中的其他服务器,使用优先级值最高的服务器来处理虚拟IP地址。

总的来说,Keepalived的作用是提供高可用性和负载均衡,它可以确保系统的持续运行和高效性,为企业提高业务的可用性和稳定性提供了极大的帮助。

1.编译

1.1 下载Keepalived安装包并检验MD5

[postgresql@evm-ch32k771ccmka53j9e40 data]$ wget keepalived-2.0.20.tar.gz #通过keepalived官网下载
HTTP request sent, awaiting response... 200 OK
Length: 1036063 (1012K) [application/octet-stream]
Saving to: ‘keepalived-2.0.20.tar.gz’
​
keepalived-2.0.20.tar.gz                                100%[============================================================================================================================>]   1012K   881KB/s    in 1.1s    
​
2023-04-27 14:52:41 (881 KB/s) - ‘keepalived-2.0.20.tar.gz’ saved [1036063/1036063]
​
[postgresql@evm-ch32k771ccmka53j9e40 data]$ md5sum keepalived-2.0.20.tar.gz 
a5966e8433b60998709c4a922a407bac  keepalived-2.0.20.tar.gz

1.2 解压&安装必要依赖

1. tar -zxvf keepalived-2.0.20.tar.gz
2. sudo yum -y install openssl-devel popt-devel net-snmp-devel gcc libnl3 libnl3-devel

1.3 编译安装keepalived包

1. cd keepalived-2.0.20
#配置编译包存放路径,支持自定义:这里为/data/keepalived
2. ./configure --prefix=/data/keepalived 
3. make && make install 
4. mkdir /data/keepalived/etc/init.d && mkdir /data/keepalived/lib
5. cp /data/keepalived-2.0.20/keepalived/etc/init.d/keepalived /data/keepalived/etc/init.d
6. rm -rf /data/keepalived-2.0.20/keepalived/etc/data/keepalived-2.0.20/keepalived/etc/keepalived.conf && touch /data/keepalived-2.0.20/keepalived/etc/data/keepalived-2.0.20/keepalived/etc/keepalived.conf
7. ldd keepalived 
    linux-vdso.so.1 (0x0000fffeb9bf0000)
    libm.so.6 => /lib64/libm.so.6 (0x0000fffeb9a50000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x0000fffeb9780000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x0000fffeb96d0000)
    libnl-genl-3.so.200 => /lib64/libnl-genl-3.so.200 (0x0000fffeb96a0000)
    libnl-3.so.200 => /lib64/libnl-3.so.200 (0x0000fffeb9650000)
    libc.so.6 => /lib64/libc.so.6 (0x0000fffeb94d0000)
    /lib/ld-linux-aarch64.so.1 (0x0000fffeb9c00000)
    libz.so.1 => /lib64/libz.so.1 (0x0000fffeb9490000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000fffeb9460000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000fffeb9420000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000fffeb93e0000)
将动态链接库cp到/data/keepalived/lib目录下,例如:cp /lib64/libm.so.6 /data/keepalived/lib

在不同操作系统(eg. ctyunos,uos以及openEuler等)执行编译后,使用ldd keepalived 来获取keepalived所依赖的动态链接文件,并且将其归档至编译好文件的lib目录下,后续执行安装时将lib目录的.so文件拷贝至系统目录中,完成多操作系统适配。

2.安装(仅用于测试手动安装)

2.1 注册系统服务

# 创建keepalived配置文件目录
1. sudo mkdir -p /etc/keepalived
# 将keepalived配置文件拷贝到etc下
2. sudo cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# 拷贝执行文件
3. sudo cp /data/keepalived/sbin/keepalived /usr/sbin/
# 将初始化脚本拷贝到系统初始化目录下
4. sudo cp /data/keepalived/etc/init.d/keepalived /etc/init.d/
# 将keepalived系统配置文件拷贝到etc下
5. sudo cp /data/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# 添加可执行权限
6. sudo chmod +x /etc/init.d/keepalived
# 添加keepalived到开机启动
7. sudo chkconfig --add keepalived
   sudo chkconfig keepalived on
# 查看添加到chkconfig的自启动服务(可不执行)
8. sudo chkconfig --list
# 复制所有的动态链接库到/lib64目录下,重复的动态链接库不覆盖
9. sudo cp /data/keepalived/lib/* /lib64

2.2 配置keepalived文件(使用默认配置可跳过)

! Configuration File for keepalived
global_defs {                                     #全局定义部分
    notification_email {                          #设置报警邮件地址,可设置多个
        acassen@firewall.loc                      #接收通知的邮件地址
    }                        
    notification_email_from test0@163.com         #设置 发送邮件通知的地址
    smtp_server smtp.163.com                      #设置 smtp server 地址,可是ip或域名.可选端口号 (默认25)
    smtp_connect_timeout 30                       #设置 连接 smtp server的超时时间
    router_id LVS_DEVEL                           #主机标识,用于邮件通知
    vrrp_skip_check_adv_addr                   
    vrrp_strict                                   #严格执行VRRP协议规范,此模式不支持节点单播
    vrrp_garp_interval 0                       
    vrrp_gna_interval 0     
    script_user keepalived_script                 #指定运行脚本的用户名和组。默认使用用户的默认组。如未指定,默认为keepalived_script 用户,如无此用户,则使用root
    enable_script_security                        #如过路径为非root可写,不要配置脚本为root用户执行。
}       
 
vrrp_script chk_nginx_service {                   #VRRP 脚本声明
    script "/etc/keepalived/chk_nginx.sh"         #周期性执行的脚本
    interval 3                                    #运行脚本的间隔时间,秒
    weight -20                                    #权重,priority值减去此值要小于备服务的priority值
    fall 3                                        #检测几次失败才为失败,整数
    rise 2                                        #检测几次状态为正常的,才确认正常,整数
    user keepalived_script                        #执行脚本的用户或组
}                                             
 
vrrp_instance VI_1 {                              #vrrp 实例部分定义,VI_1自定义名称
    state MASTER                                  #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP
    interface ens33                               #网卡设置,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
    virtual_router_id 51                          #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
    priority 100                                  #定义优先级,数字越大,优先级越高。
    advert_int 1                                  #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
    authentication {                              #设置验证类型和密码,两个节点必须一致
        auth_type PASS                        
        auth_pass 1111                        
    }                                         
    virtual_ipaddress {                           #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.119.130                       
    }
    track_script {                                #脚本监控状态
        chk_nginx_service                         #可加权重,但会覆盖声明的脚本权重值。chk_nginx_service weight -20
    }
        notify_master "/etc/keepalived/start_haproxy.sh start"  #当前节点成为master时,通知脚本执行任务
        notify_backup "/etc/keepalived/start_haproxy.sh stop"   #当前节点成为backup时,通知脚本执行任务
        notify_fault  "/etc/keepalived/start_haproxy.sh stop"   #当当前节点出现故障,执行的任务; 
}                                             
 
virtual_server 192.168.119.130 80  {          #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
    delay_loop 6                              #每隔6秒查询realserver状态
    lb_algo rr                                #后端调试算法(load balancing algorithm)
    lb_kind DR                                #LVS调度类型NAT/DR/TUN
    #persistence_timeout 60                   同一IP的连接60秒内被分配到同一台realserver
    protocol TCP                              #用TCP协议检查realserver状态
    real_server 192.168.119.120 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }                                     
    }                                         
    real_server 192.168.119.121 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }                                     
    }                                         
}                                             
 
vrrp_instance VI_2 {                          #vrrp 实例部分定义,VI_1自定义名称
    state   BACKUP                            #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP 分别表示(主|备)
    interface ens33                           #网卡设置,绑定vip的子接口,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
    virtual_router_id 52                      #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
    priority 90                               #定义优先级,数字越大,优先级越高。
    advert_int 1                              #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
    authentication {                          #设置验证类型和密码,两个节点必须一致
        auth_type PASS                        
        auth_pass 1111                        
    }                                         
    virtual_ipaddress {                       #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
        192.168.119.131                       
    }                                         
}                                             
 
virtual_server 192.168.119.131 80 {           #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
    delay_loop 6                              #每隔6秒查询realserver状态
    lb_algo rr                                #后端调试算法(load balancing algorithm)
    lb_kind DR                                #LVS调度类型NAT/DR/TUN
    #persistence_timeout 60                   #同一IP的连接60秒内被分配到同一台realserver
    protocol TCP                              #用TCP协议检查realserver状态
    real_server 192.168.119.120 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }                                     
    }                                         
    real_server 192.168.119.121 80 {          
        weight 1                              #权重,最大越高,lvs就越优先访问
        TCP_CHECK {                           #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
            connect_timeout 10                #10秒无响应超时
            retry 3                           #重连次数3次
            delay_before_retry 3              #重连间隔时间
            connect_port 80                   #健康检查realserver的端口
        }
    }
}

2.3 keepalived启停/状态查询

# Keepalived服务启动
1. systemctl start keepalived 或者 service keepalived start
# 停止keepalived服务
2. systemctl stop keepalived 或者 service keepalived stop
# 重启keepalived服务
3. systemctl restart keepalived 或者 service keepalived restart
# 查看keepalived服务运行情况
4. ps -ef | grep keepalived 或者 systemctl status keepalived 或者 service keepalived status
文章来自个人专栏
高可用中间件
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0