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

3.1 KiB
Raw Permalink Blame History

环境简介

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

apt install keepalived net-tools -y #安装keepalived 和 net-tools

配置keepalived 配置文件

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   #设置重连间隔       
   }
   }
}
systemctl enable keepalived
systemctl start keepalived
ipvsadm
ip a 

搭建rs

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
reboot