云计算学习100天-第31天

Keepalived

概念

  • keepalived 是Linux下一个轻量级的高可用解决方案
  • 主要是通过虚拟路由冗余协议(VRRP)来实现高可用功能
  • Virtual Router Redundancy Protocol
  • 起初就是为了补充LVS功能而设计的,用于监控LVS集群内后端真实服务器状态
  • 后来加入了VRRP的功能,它出现的目的是为了解决静态路由出现的单点故障问题

功能

  • LVS规则管理
  • LVS集群真实服务器状态监测
  • 管理VIP
主机名 IP地址 角色
pubserver eth0:192.168.88.240 ansible主机
client eth0:192.168.88.10 客户端
lvs1 eth0:192.168.88.5 lvs1调度器
lvs2 eth0:192.168.88.6 lvs2调度器
web1 eth0:192.168.88.100 web服务器
web2 eth0:192.168.88.200 web服务器

使用Keepalived实现LVS高可用,配置测试高可用负载均衡集群

lvs1和lvs2节点安装LVS和Keepalived软件,在ansible主机上使用剧本安装

vim 11_inst_lvs_kp.yml


  • name: install soft

hosts: lbs

tasks:

  • name: install pkgs #安装软件

yum:

name: ipvsadm,keepalived

state: present

ansible-playbook 11_inst_lvs_kp.yml

配置lvs1节点Keepalived软件

vim /etc/keepalived/keepalived.conf

global_defs {

...

router_id lvs1 #集群节点唯一标识

vrrp_iptables #放行防火墙规则

...

vrrp_strict #严格遵守VRRP规则

...

}

vrrp_instance VI_1 {

state MASTER #状态

interface eth0 #网卡

virtual_router_id 51 #虚拟路由唯一标识符

priority 100 #优先级

advert_int 1 #心跳包间隔时间

authentication { #认证方式

auth_type PASS #密码认证

auth_pass 1111 #集群密码

}

virtual_ipaddress { #定义VIP

192.168.88.15/24 dev eth0 label eth0:0 #VIP地址及绑定网卡和虚接口标签

}

}

virtual_server 192.168.88.15 80 { #定义LVS虚拟服务器

delay_loop 6 #健康检查延时6s开始

lb_algo wrr #调度算法

lb_kind DR #LVS工作模式

persistence_timeout 50 #50s内相同客户端发起请求由同一服务器处理

protocol TCP #虚拟服务器协议

real_server 192.168.88.100 80 { #定义真实服务器

weight 1 #权重

TCP_CHECK { #健康检查方式

connect_timeout 3 #连接超时时间为3s

nb_get_retry 3 #连续3次访问失败则认为真实服务器故障

delay_before_retry 3 #健康检查包时间间隔

}

}

real_server 192.168.88.200 80 {

weight 2

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

启动服务测试

ipvsadm -Ln #启动服务前无LVS规则

systemctl enable --now keepalived #加入开机自启并立即启动

ipvsadm -Ln #启动服务后有LVS规则

ip a s | grep 192.168 #VIP已绑定

client客户端同一服务器处理请求

for i in {1..6}

> do

> curl http://192.168.88.15

> done

Welcome to web2

Welcome to web2

Welcome to web2

Welcome to web2

Welcome to web2

Welcome to web2

补充:lvs1节点注释持久连接时长

vim /etc/keepalived/keepalived.conf

...

#persistence_timeout 50

...

systemctl restart keepalived

#client客户端同一服务器处理请求

for i in {1..6};do curl http://192.168.88.15; done

Welcome to web2

Welcome to web1

Welcome to web2

Welcome to web2

Welcome to web1

Welcome to web2

配置lvs2节点Keepalived软件

#将lvs1节点的配置文件复制给lvs2节点 这里用rsync -av命令更安全

scp /etc/keepalived/keepalived.conf root@192.168.88.6:/etc/keepalived/

#进入到lvs2节点编辑配置文件

vim /etc/keepalived/keepalived.conf

#修改如下三行

router_id lvs2 #集群节点唯一标识符

state BACKUP #状态

priority 50 #优先级

ipvsadm -Ln

systemctl start keepalived

ipvsadm -Ln

验证真实服务器健康检查

#web1节点停止nginx服务,模拟web1故障

systemctl stop nginx

#lvs1节点和lvs2节点中查看到LVS规则中web1被擦除

ipvsadm -Ln

TCP 192.168.88.15:80 wrr

-> 192.168.88.200:80 Route 2 0 0

#web1节点启动nginx服务

systemctl start nginx #模拟web1修复

#lvs1节点和lvs2节点中的LVS规则中web1被添加回来

ipvsadm -Ln

TCP 192.168.88.15:80 wrr

-> 192.168.88.100:80 Route 1 0 0

-> 192.168.88.200:80 Route 2 0 0

验证高可用负载均衡

#lvs1节点

ip a s | grep 88.15 #VIP绑定于lvs1

inet 192.168.88.15/24 scope global secondary eth0:0

systemctl stop keepalived #模拟lvs1节点故障

ip a s | grep 88.15 #VIP释放

ipvsadm -Ln #LVS规则被清空

#lvs2节点

root@lvs2 \~\]# ip a s \| grep 88.15 #VIP绑定于lvs2 inet 192.168.88.15/24 scope global secondary eth0:0 ipvsadm -Ln TCP 192.168.88.15:80 wrr -\> 192.168.88.100:80 Route 1 0 0 -\> 192.168.88.200:80 Route 2 0 0 client客户端查看,不受影响 for i in {1..6} do curl http://192.168.88.15 done Welcome to web1 Welcome to web2 Welcome to web2 Welcome to web1 Welcome to web2 Welcome to web2

相关推荐
YJlio7 小时前
文件工具学习笔记(12.8):MoveFile 实战——重启后重命名/删除顽固文件
笔记·学习·计算机外设
Damon_X7 小时前
OpenGL相关学习
学习
Apache Flink7 小时前
在 OpenAI 打造流处理平台:超大规模实时计算的实践与思考
大数据·flink·云计算
式5167 小时前
大模型学习基础(六) 强化学习(Reinforcement Learning,RL)初步1.3
学习
关于不上作者榜就原神启动那件事7 小时前
Redis学习笔记
redis·笔记·学习
VermiliEiz7 小时前
二进制文件方式部署k8s(2)
kubernetes·云计算·etcd
小女孩真可爱7 小时前
大模型学习记录(九)-------Agent
人工智能·pytorch·深度学习·学习·大模型
xunyan62348 小时前
异常处理-异常概述
java·学习
走在路上的菜鸟8 小时前
Android学Dart学习笔记第二十六节 并发
android·笔记·学习·flutter
翼龙云_cloud8 小时前
阿里云渠道商:在更换阿里云 GPU 公网 IP 时,如何确保数据的安全性?
运维·服务器·tcp/ip·阿里云·云计算