更详细的文档可以访问如下链接https://download.csdn.net/download/xaosky/85036660https://download.csdn.net/download/xaosky/85036660
目录
目录
1.前言
2.部署规划
3.创建虚拟机
4.部署操作系统
5.配置系统环境
5.1禁用系统安全模块
5.2禁用防火墙
5.3网络配置
5.4主机名称
5.5配置HOSTS文件
5.6 YUM配置
6.软件安装
6.1安装httpd及服务配置
6.2安装keepalived及服务配置
7.集群配置
7.1服务检测脚本配置
7.2 keepalived配置文件
7.2.1节点1配置
7.2.2节点2配置
7.3配置文件说明
7.4服务配置
8.访问测试
9.注意事项
类目 |
节点1 |
节点2 |
系统环境 |
Vmware虚拟机 |
|
虚拟机软件 |
Vmware workstation 16 pro |
|
系统配置 |
CPU 4C / 内存 8G / 磁盘40G / 网络接口1个 |
|
操作系统 |
Oracle Linux7.9 |
|
IP地址 |
192.168.31.11 |
192.168.31.12 |
虚拟地址 |
192.168.31.10 |
|
主机名称 |
http-keep-001 |
http-keep-002 |
集群软件 |
keepalived |
|
应用软件 |
httpd |
|
实现功能 |
通过keepalived实现httpd服务的冗余部署。
|
运行虚拟化软件,创建一个全新的虚拟机。
要求CPU 4C,内存8G,硬盘40G,网络选择桥接模式。
建议:
虚拟机创建完成之后,启动虚拟机,从OracleLinux7.9光盘镜像进行启动,开始安装操作系统。
主要配置说明:
在两个节点做如下配置。
# vi /etc/selinux/config
disabled
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl status firewalld
检查IP地址配置,如有问题则编辑对应网卡配置文件即可,更改之后请重启network服务。
检查系统主机名称,如有问题则使用命令:hostnamectl set-hostname hostname进行更改,更改之后请重启操作系统使生效。
编辑/etc/hosts文件,增加两个节点IP地址和主机名称的对应。
# vi /etc/hosts
配置YUM,可以解决软件包安装过程中的依赖关系。
# vi /etc/yum.repos.d/system.repo
# yum clean all
# yum makecache
注:读者可以mount系统光盘镜像来创建本地YUM源,具体方法不再赘述,可参考先前发布的其他文档。
# yum install httpd -y
# systemctl start httpd
# systemctl enable httpd
浏览器输入两个节点的IP地址进行访问测试。
本文档为了测试集群配置,实际并无网页内容,为了区别两个节点访问页面的区别,我们在每个节点做如下配置。
节点1:
# echo 'welcome to you http-keep-001' > /var/www/html/index.html
节点2:
# echo 'welcome to you http-keep-002' > /var/www/html/index.html
# yum install keepalived -y
# systemctl start keepalived
# systemctl enable keepalived
创建服务检测脚本,用以检测httpd服务的运行状态,当httpd服务停止时,触发停止keepalived服务的运行。
此部分在两个节点均做配置。
# vi /sbin/check_httpd.sh
# chmod 777 /sbin/check_httpd.sh
# ./sbin/check_httpd.sh
# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.b
# vi /etc/keepalived/keepalived.conf
# cat /etc/keepalived/keepalived.conf
# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.b
# vi /etc/keepalived/keepalived.conf
# cat /etc/keepalived/keepalived.conf
Keepalived的主配置文件为/etc/leepalived/keepalived.conf,改文件包含global_defs、virtual_server、vrrp_instance和vrrp_script四个配置区域,简要介绍如下:
本文档配置内容如下,将做详细介绍。
global_defs {
router_id http-keep-001
【标识此节点的字符串,通常设置为主机名称】
script_user root
【执行监控脚本的用户身份】
}
vrrp_script check_httpd {
script "/sbin/check_httpd.sh"
【设置所要检测的脚本】
interval 2
【每2秒钟检测一次】
weight -5
【若检测失败则优先级减少5个值】
fall 3
【若连续失败3次则认为此服务器已失效】
rise 2
【若连续成功次数达到此值则认为服务器已生效】
}
vrrp_instance VI_1 {
state BACKUP
【也可以是MASTER,当两个节点都设置为BACKUP,优先级高的搭配nopreempt,将不会“抢回”主节点】
interface ens33
【当前节点的网卡名称】
virtual_router_id 50
【虚拟路由ID,同一集群的多个节点必须一致】
nopreempt
【非抢占模式,避免出现无谓的主从节点抢断】
priority 100
【节点优先级,数值高则优先级权重高】
advert_int 1
【健康检查的时间间隔,默认1秒】
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.10
【定义集群虚拟IP地址,最少1个】
}
track_script {
check_httpd
【和vrrp_script区域定义的字段名相关联】
}
}
在两个节点上分别重启keepalived服务,查看服务状态。
# systemctl restart keepalived
# systemctl status keepalived
虚拟IP地址192.168.31.10目标在节点1上运行。
查看节点1的IP地址,能看到虚拟地址192.168.31.10。
在节点1停止httpd服务,keepalived状态如下:
# systemctl stop httpd
# systemctl status keepalived
在节点1停止httpd服务后,keepalived服务也停止运行。
然后,查看节点2的keepalived服务运行状态,可以看到虚拟IP地址已经被接管。
在浏览器输入集群的虚拟IP地址进行访问测试,可以看到,httpd页面已经转移到了节点2。
接上部分,我们启动节点1的httpd服务和keepalived服务,查看两个节点的keepalived运行状态,会发现,节点1并没有“抢回”虚拟IP地址。
当我们在节点2上停止httpd服务后,keepalived服务随即停止,虚拟IP地址回到了节点1,http的访问也切回到了节点1。
问题:
当某个节点httpd服务异常,导致keepalived服务终止之后,若httpd服务恢复正常,则keepalived并不会自动运行。
解决办法:
# yum install -y crontabs
# systemctl start crond
# systemctl enable crond
# vi /sbin/check_httpd_sys.sh
# cat /sbin/check_httpd_sys.sh
# chmod 777 /sbin/check_httpd_sys.sh
实际操作截图如下:
可执行文件的内容是,当httpd服务正常运行后,执行启动keepalived服务的操作。
将可执行文件加入自动调度计划,没一分钟执行一次。
# crontab -e
# crontab -l
如下图,当我们把httpd服务修复启动之后,keepalived服务将会自动启动。