更改 keepalived 为支持 lvs

This commit is contained in:
zhanglikun 2024-01-30 10:26:56 +08:00
parent ae7e5fe0fc
commit bcdfe273cc
3 changed files with 158 additions and 74 deletions

View File

@ -1,35 +1,63 @@
global_defs { global_defs {
script_user root # 脚本执行者 router_id LVS_APISERVER
enable_script_security # 标记脚本安全
} }
vrrp_instance VI_1 {
vrrp_script check { state BACKUP
script "killall -0 kube-apiserver" # 脚本路径 nopreempt
interval 2 # 脚本执行间隔单位s
weight -20 # -254-254之间检测失败权重减少
}
vrrp_instance VI_1 { # 实例名
state BACKUP # 3个实例1个配置MASTER另外2个配置BACKUP, 非抢占式配置BACKUP
interface __NETWORK_NIC__ interface __NETWORK_NIC__
virtual_router_id 251 # ID主备需一致 virtual_router_id 80
priority 100 # 默认权重3个节点保持不一致并且MASTER最大priority之间的差值要小于weight priority 100
nopreempt # 非抢占式 advert_int 1
authentication { authentication {
auth_type PASS # 主备验证信息,需一致 auth_type PASS
auth_pass 123456 auth_pass LVS_APISERVER
}
track_script {
check
}
unicast_src_ip __MASTER1__
unicast_peer {
__MASTER2__
__MASTER3__
} }
virtual_ipaddress { virtual_ipaddress {
__VIP__ dev __NETWORK_NIC__ __VIP__
}
}
virtual_server __VIP__ 6443 {
delay_loop 6
lb_algo loadbalance
lb_kind DR
net_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server __MASTER1__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server __MASTER2__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server __MASTER3__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} }
} }
}

View File

@ -1,35 +1,63 @@
global_defs { global_defs {
script_user root router_id LVS_APISERVER
enable_script_security
} }
vrrp_script check {
script "killall -0 kube-apiserver"
interval 2
weight -20
}
vrrp_instance VI_1 { vrrp_instance VI_1 {
state BACKUP state BACKUP
interface __NETWORK_NIC__
virtual_router_id 251
priority 99
nopreempt nopreempt
interface __NETWORK_NIC__
virtual_router_id 80
priority 99
advert_int 1
authentication { authentication {
auth_type PASS auth_type PASS
auth_pass 123456 auth_pass LVS_APISERVER
}
track_script {
check
}
unicast_src_ip __MASTER2__
unicast_peer {
__MASTER1__
__MASTER3__
} }
virtual_ipaddress { virtual_ipaddress {
__VIP__ dev __NETWORK_NIC__ __VIP__
}
}
virtual_server __VIP__ 6443 {
delay_loop 6
lb_algo loadbalance
lb_kind DR
net_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server __MASTER1__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server __MASTER2__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server __MASTER3__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} }
} }
}

View File

@ -1,35 +1,63 @@
global_defs { global_defs {
script_user root router_id LVS_APISERVER
enable_script_security
} }
vrrp_script check {
script "killall -0 kube-apiserver"
interval 2
weight -20
}
vrrp_instance VI_1 { vrrp_instance VI_1 {
state BACKUP state BACKUP
interface __NETWORK_NIC__
virtual_router_id 251
priority 98
nopreempt nopreempt
interface __NETWORK_NIC__
virtual_router_id 80
priority 98
advert_int 1
authentication { authentication {
auth_type PASS auth_type PASS
auth_pass 123456 auth_pass LVS_APISERVER
}
track_script {
check
}
unicast_src_ip __MASTER3__
unicast_peer {
__MASTER1__
__MASTER2__
} }
virtual_ipaddress { virtual_ipaddress {
__VIP__ dev __NETWORK_NIC__ __VIP__
}
}
virtual_server __VIP__ 6443 {
delay_loop 6
lb_algo loadbalance
lb_kind DR
net_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server __MASTER1__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server __MASTER2__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server __MASTER3__ 6443 {
weight 1
SSL_GET {
url {
path /healthz
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} }
} }
}