0
点赞
收藏
分享

微信扫一扫

五月学习之keepalived 虚拟主机配置段

1、默认配置

以下内容是keepalived.conf中的全局配置内容样例:
virtual_server 10.10.10.2 1358 {
    delay_loop 6
    lb_algo rr 
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    sorry_server 192.168.200.200 1358

    real_server 192.168.200.2 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.3 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

2、配置详解

2.1、配置简介

我们可以通过 man keepalived.conf 方式来查看所有的配置信息,在keepalived.conf配置文件中,虚拟主机配置段主要包含以下两部分内容:Virtual server group(s) and Virtual server(s)。而默认配置文件中的全局配置信息仅仅是Virtual server(s)的一部分。

接下来我们主要来讲解一下默认的内容中的比较重要的一部分,其他内容,我们会随着课程逐渐展开,或者大家在课下遇到问题后再来解决。

2.2、配置格式:

virtual_server <VIP> <PORT> {...}

注意:

这里设定的是VIP相关信息,而VIP必须与VRRP中设定的virtual_ipaddress内容一致

常见属性:

delay_loop  用于服务轮询的延迟计时器

lb_algo 设定访问后端服务的调度策略

在当前的keepalived版本下,它支持7种调度算法 rr|wrr|lc|wlc|lblc|sh|dh

lb_kind 设定数据转发的模型

因为是基于IPVS进行负载均衡的,所以数据转发的模型与LVS一致 NAT|DR|TUN

persistence_timeout 设定数据持久性的超时时间,默认为6分钟

protocol 设定数据通信的协议,默认支持三种 TCP|UDP|SCTP

这一项是必备的,因为我们使用ipvsadm 创建集群的时候,必须指定通信协议

sorry_server 备用真实主机,当所有RS失效后,开始启用该后备主机。

real_server  设定后端主机的信息

2.3、真实主机属性

real_server 192.168.12.132 80 {
    weight 3
    inhibit_on_failure
    notify_up <STRING> | <QUOTED-STRING>
    notify_down <STRING> | <QUOTED-STRING>
}
上述示例中每个选项的含义如下:
☆ real_server:是设置real_server段开始的标识,用来指定real_server节点,后面跟的是real_server的真实IP地址和端口,IP与端口之间用空格隔开。
★weight:用来配置real_server节点的权值。权值大小用数字表示,数字越大,权值越高,默认是1。设置权值的大小可以为不同性能的服务器分配不同的负载,
为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配系统资源。
☆inhibit_on_failure:表示在检测到real server节点失效后,把它的“weight”值设置为0,而不是从IPVS中删除。
★notify_up:此选项与上面介绍过的notify_master有相同的功能,后跟一个脚本,表示在检测到real server节点服务处于UP状态后执行的脚本。
☆notify_down:表示在检测到real server节点服务处于DOWN状态后执行的脚本。

健康检测段允许多种检查方式,常见的有HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK、MISC_CHECK。
HTTP_GET		以HTTP方式来检查后端主机
TCP_CHECK 		以TCP方式来检查后端主机
SMTP_CHECK	以SMTP方式来检查后端主机
DNS_CHECK		以DNS方式来检查后端主机
MISC_CHECK	以MISC方式来检查后端主机


2.4、HTTP检测属性

url {

path <path/to/url> 指定要检查的URL的路径

digest <STRING> 校验码验证,校验计算:genhash -s <IP> -p <port> -u /path/to/url

status_code <INT> 状态码方式验证,推荐使用这种方法

}

注意:

由于digest方式太繁琐,而且文件一旦变动,老的digest就不能用了,所以不推荐

connect_timeout 连接超时时间,默认5s

nb_get_retry get方式获取检测url页面的重试次数

delay_before_retry 重试的间隔时间,默认1s

2.5、TCP检测属性

connect_ip 测试目标的ip,默认是RS的ip,可省略

connect_port 测试目标的端口,默认是RS的port,可省略

connect_timeout 连接超时时间

nb_get_retry 重试次数,可省略

delay_before_retry 重试间隔时间,默认1s

2.6、MISC检测属性

MISC_CHECK检测方式的示例:                        

MISC_CHECK {

misc_path /usr/local/bin/script.sh

misc_timeout 5

!misc_dynamic

 }

 MISC健康检查方式可以通过执行一个外部程序来判断real server节点的服务状态,使用非常灵活。

misc_path : 用来指定一个外部程序或者一个脚本路径。

misc_timeout : 设定执行脚本的超时时间。

misc_dynamic : 表示是否用动态调整real server节点权重,“!misc_dynamic”表示不启用,相反则表示启用。在启用这个功能后,Keepalived的healthchecker进程将通过退出状态码来动态调整real server节点的weight值,如果返回状态码为0,表示健康检查正常,real server节点权重保持不变;如果返回状态码为1,表示健康检查失败,那么将real server节点权重设置为0;如果返回状态码为2 ~ 255之间任意数值,表示健康检查正常,但real server节点的权重将被设置为返回状态码减2,例如返回状态码为10,real server节点权重将被设置为8(10 - 2)。

举报

相关推荐

0 条评论