## 环境简介 | 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 ```