欢迎光临
我们一直在努力

高可用组件Keepalived安装与配置

Keepalived简介

        Keepalived是一款C语言开发高可用组件,主要用于实现如nginx、mysql等实现负载均衡和高可用的方案,主要基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来实现。本文主要来研究基础安装,以及日常配置。

Keepalived安装

        本文是在Ubuntu服务器环境上安装Keepalived。

        在安装之前,您需要先获取稳定版本的tar包。您可以从Keepalived的官方网站中获取最新的稳定版本。一般来说,官方网站是获取最新稳定版本的可靠方式。

  • 从官方网站下载稳定版本的tar

        打开浏览器,访问Keepalived的官方网站(https://www.keepalived.org/),在网站的主页上查找“下载”选项,并选择适合您操作系统的稳定版本。

  • 步骤2:解压tar文件

        下载完成后,您需要解压tar文件。在终端中,可用使用以下命令解压tar文件:

tar -xvf keepalived-x.x.x.tar.gz

        其中,keepalived-x.x.x.tar.gz是您下载的tar文件的名称。解压后,您将得到一个名为keepalived-x.x.x的目录。

  • 步骤3:进入目录并编译安装

        接下来,使用以下命令进入目录并编译安装Keepalived:

cd keepalived-x.x.x
./configure
make
make install

        这将编译并安装Keepalived到您的系统中。请注意,您可能需要以root用户身份运行这些命令(使用sudo)。

  • 步骤4:配置Keepalived

        安装完成后,您需要配置Keepalived。在终端中,使用以下命令编辑Keepalived的配置文件:

vi /etc/keepalived/keepalived.conf

        如果您希望在系统启动时自动启动Keepalived服务,请运行以下命令:

service keepalived enable
service keepalived start

        这样,您就成功地安装并配置了Keepalived的稳定版本。请注意,根据您的操作系统和环境,可能需要进行额外的配置和调整。建议参考Keepalived的官方文档以获取更详细的信息和指导。

Keepalived配置

  • 配置语言环境

        以下是修改语言环境的指令

vi /etc/default/locale
LANG=C.UTF-8

LANG=en-US.UTF-8
LANG=zh-CN.UTF-8

  • 添加虚ip

        以下是增加虚ip的指令

sudo ip addr add 192.168.1.198/24 dev eth0

  • 修改配置文件

        配置文件的路径默认在/etc/keepalived/keepalived.conf

vi /etc/keepalived/keepalived.conf

  • 配置文件示例

        以下是一套配置文件的示例,可供参考

——-Master——–
global_defs{
router_id slave-node
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 92
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.198
}
track_script {
chk_http_port
}
}

vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2
weight 2
fall 2
rise 1
}
————————-

———–Backup——-
global_defs{
router_id slave-node
}

vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2
weight 2
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 92
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.198
}
track_script {
chk_http_port
}
}

  • 配置说明

          以下是整体配置文件,常用参数的说明,可以参考

# 定义chk_http_port脚本,脚本执行间隔3秒,权重-2,检测nginx服务是否在运行。有很多方式,比如进程,用脚本检测等等
vrrp_script chk_http_port {
#这里通过脚本监测
script "/etc/keepalived/nginx_check.sh"
#脚本执行间隔,每3s检测一次
interval 3
#脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -2
weight -2
#检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
fall 2
#检测1次成功就算成功。但不修改优先级
rise 1
}

#定义vrrp实例,VI_1 为虚拟路由的标示符,自己定义名称,keepalived在同一virtual_router_id中priority(0-255)最大的会成为master,也就是接管VIP,当priority最大的主机发生故障后次priority将会接管
vrrp_instance VI_1 {
#指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器。注意这里的state指定instance(Initial)的初始状态,就是说在配置好后,这台服务器的初始状态就是这里指定的,
#但这里指定的不算,还是得要通过竞选通过优先级来确定。如果这里设置为MASTER,但如若他的优先级不及另外一台,那么这台在发送通告时,会发送自己的优先级,另外一台发现优先级不如自己的高,
#那么他会就回抢占为MASTER
state MASTER
#指定HA监测网络的接口。与本机 IP 地址所在的网络接口相同,可通过ip addr 查看
interface ens33
#虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
virtual_router_id 51
#定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
priority 100
#设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
advert_int 1
#设置验证类型和密码。主从必须一样
authentication {
#设置vrrp验证类型,主要有PASS和AH两种
auth_type PASS
#设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
auth_pass 1111
}
#VRRP HA 虚拟地址 如果有多个VIP,继续换行填写
#设置VIP,它随着state变化而增加删除,当state为master的时候就添加,当state为backup的时候则删除,由优先级决定
virtual_ipaddress {
192.168.1.198
}
}

查看日志排查错误

# 查看所有Keepalived日志
journalctl -u keepalived

# 实时查看Keepalived日志
journalctl -u keepalived -f

# 查看最近100条Keepalived日志
journalctl -u keepalived -n 100

赞(0)
未经允许不得转载:171主机测评 » 高可用组件Keepalived安装与配置
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址