云计算学习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

相关推荐
JJJJ_iii5 小时前
【机器学习01】监督学习、无监督学习、线性回归、代价函数
人工智能·笔记·python·学习·机器学习·jupyter·线性回归
Han.miracle6 小时前
数据结构——二叉树的从前序与中序遍历序列构造二叉树
java·数据结构·学习·算法·leetcode
知识分享小能手7 小时前
uni-app 入门学习教程,从入门到精通,uni-app基础扩展 —— 详细知识点与案例(3)
vue.js·学习·ui·微信小程序·小程序·uni-app·编程
●VON8 小时前
重生之我在大学自学鸿蒙开发第九天-《分布式流转》
学习·华为·云原生·harmonyos·鸿蒙
无妄无望8 小时前
docker学习(4)容器的生命周期与资源控制
java·学习·docker
Akamai中国9 小时前
Linebreak赋能实时化企业转型:专业系统集成商携手Akamai以实时智能革新企业运营
人工智能·云计算·云服务
Larry_Yanan11 小时前
QML学习笔记(四十二)QML的MessageDialog
c++·笔记·qt·学习·ui
能不能别报错11 小时前
K8s学习笔记(十九) K8s资源限制
笔记·学习·kubernetes
2401_8653825012 小时前
工信部发布→《云计算综合标准化体系建设指南(2025版)》
网络安全·云计算·信息安全技术
十安_数学好题速析12 小时前
倍数关系:最多能选出多少个数
笔记·学习·高考