wiki/运维/负载均衡/KeepAlived/KeepAlived实操.md
2026-04-09 01:28:15 +08:00

119 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 环境简介
| hostname | ip | mark |
| --- | --- | --- |
| lvs-1 | 192.168.30.13 | 主lvs |
| lvs-2 | 192.168.30.14 | 备lvs |
| k8s-master-1 | 192.168.30.6 | rs-1 |
| k8s-master-2 | 192.168.30.7 | rs-2 |
| k8s-master-3 | 192.168.30.12 | rs-3 |
## 搭建主备LVS
```plain
apt install keepalived net-tools -y #安装keepalived 和 net-tools
```
配置keepalived 配置文件
```plain
global_defs {
no_email_faults
}
# VRRP 实例配置
vrrp_instance VI_1 {
state MASTER #如果使用主/备,另外一台机器需要设置为BACKUP
interface ens32 #检测网络端口
virtual_router_id 100 #主备的虚拟机路由ID必须一致
priority 100 #主备的优先级,主优先级要大于备
advert_int 1 #VRRP Multicast广播周期秒数
authentication {
auth_type PASS # VRRP认证方式
auth_pass zhanxiaoyao # VRRP口令字
}
virtual_ipaddress {
192.168.30.200 # 如果有多个VIP继续换行填写
}
}
# 虚拟服务器配置
virtual_server 192.168.30.200 6443 {
delay_loop 1 # 每隔1秒查询realserver状态
lb_algo wrr # lvs 算法
lb_kind DR # Direct Route
protocol TCP # 用TCP协议检查realserver状态
persistence_timeout 300 # 会话保持时间这段时间内同一ip发起的请求将被转发到同一个realserver
# 第一台realserver物理环境
real_server 192.168.30.6 6443 {
weight 1
TCP_CHECK {
connect_port 6443 #设置监控检查的端口
connect_timeout 3 #设置连接超时时间
nb_get_retry 3 #设置重连次数
delay_before_retry 2 #设置重连间隔
}
}
# 第二台realserver物理环境
real_server 192.168.30.7 6443 {
weight 1
TCP_CHECK {
connect_port 6443 #设置监控检查的端口
connect_timeout 3 #设置连接超时时间
nb_get_retry 3 #设置重连次数
delay_before_retry 2 #设置重连间隔
}
}
# 第三台realserver物理环境
real_server 192.168.30.12 6443 {
weight 1
TCP_CHECK {
connect_port 6443 #设置监控检查的端口
connect_timeout 3 #设置连接超时时间
nb_get_retry 3 #设置重连次数
delay_before_retry 2 #设置重连间隔
}
}
}
```
```plain
systemctl enable keepalived
systemctl start keepalived
ipvsadm
ip a
```
## 搭建rs
```plain
vim /etc/keepalived-rs.sh
#!/bin/bash
VIP=192.168.30.200
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
chmod 777 /etc/keepalived-rs.sh
vim /lib/systemd/system/keepalived-lvs-rs.service
[Unit]
Description=My Script
After=network.target
[Service]
ExecStart=/etc/keepalived-rs.sh
[Install]
WantedBy=default.target
```
```plain
reboot
```