keepalive HA + docker + nginx 实战

keepalive HA + docker + nginx 实战

虚拟机桥接模式,独立ip和网卡

IP 角色
192.168.0.107 master
192.168.0.111 slave

配置虚拟机网卡静态ip

TYPE="Ethernet"                                                                                             
PROXY_METHOD="none"                                                                                         
BROWSER_ONLY="no"                                                                                           
BOOTPROTO="static"                                                                                          
DEFROUTE="yes"                                                                                              
IPV4_FAILURE_FATAL="no"                                                                                     
IPV6INIT="yes"                                                                                              
IPV6_AUTOCONF="yes"                                                                                         
IPV6_DEFROUTE="yes"                                                                                         
IPV6_FAILURE_FATAL="no"                                                                                     
IPV6_ADDR_GEN_MODE="stable-privacy"                                                                         
NAME="ens33"                                                                                                
UUID="a4fa6313-d874-4d7e-ade4-463878ca48b6"                                                                 
DEVICE="ens33"                                                                                              
ONBOOT="yes"                                                                                                
IPADDR=192.168.0.107       
#以下配置参考宿主机配置                                                                                 
GATEWAY=192.168.0.1                                                                                         
DNS1=192.168.1.1                                                                                            
DNS2=192.168.0.1 

配置保存之后重启网卡

systemctl restart network

查看配置是否生效

ip addr 

生效的网卡为ens33

ens33:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000      link/ether 00:0c:29:8f:47:6f brd ff:ff:ff:ff:ff:ff                                                      inet 192.168.0.107/24 brd 192.168.0.255 scope global noprefixroute ens33                                valid_lft forever preferred_lft forever                                                              inet 192.168.0.200/32 scope global ens33                                                                valid_lft forever preferred_lft forever                                                              inet6 fe80::dc9e:7948:4e5e:3056/64 scope link noprefixroute                                             valid_lft forever preferred_lft forever 

环境直接安装docker

第一步:设置 yum 仓库地址

sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第二步:更新 yum 缓存

sudo yum makecache fast #yum 是包管理器

第三步:安装新版 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io
#启动docker服务
systemctl restart docker
#将docker服务添加到linux 开机启动
systemtctl enable docker

Docker镜像加速

cat <<EOF > /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "10m","max-file": "3"},"data-root": "/var/lib/docker"
}
EOF
# -v 是指卷挂载,将宿主机路径挂载到‘:’后面的容器路径上
docker run -d -p 80:80 --name nginx-web \
-v /usr/local/nginx/www:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/logs:/var/log/nginx nginx

安装部署keepalived

 yum install -y keepalivedsystemctl enable keepalivedsystemctl start keepalived

修改keepalived配置

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {# master 结点配置MASTER slave 结点配置BACKUPstate MASTER# 绑定虚机生效的网卡interface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}# 配置HA集群虚拟IPvirtual_ipaddress {192.168.0.200}#配置生胶的检测脚本track_script {  chk_http_port}
}
vrrp_script chk_http_port {#心跳执行的脚本,检测nginx是否启动script "/usr/local/src/check_nginx_pid.sh" #(检测脚本执行的间隔)interval 2 #权重                        weight 2                           
}
# 上述配置的虚拟ip
virtual_server 192.168.0.200 80 {delay_loop 6lb_algo rrlb_kind NAT#   persistence_timeout 50protocol TCP# 集群中虚机配置的静态ipreal_server 192.168.0.107 80 {weight 1TCP_CHECK {connect_timeout 3delay_before_retry 3}}real_server 192.168.0.111 80 {weight 1TCP_CHECK {connect_timeout 3delay_before_retry 3}}

虚机健康度检测脚本

#!/bin/bash
#检测nginx是否启动了
if [[ ! -n $(docker ps -q -f name=^nginx-web) ]];thendocker start nginx-web# echo '重启ng'if [[ ! -n $(docker ps -q -f name=^nginx-web) ]];then   #nginx重启失败,则停掉keepalived服务,进行VIP转移systemctl stop keepalived                    fiexit 1
elseexit 0
fi
# 给脚本配置执行权限chmod 755 /usr/local/src/check_nginx_pid.sh

测试工作

删除容器,观察是否被重启

docker fm -rf nginx-web

查看keepalived 状态,确认已经被stop, active: dead

[root@klv-master src]# systemctl status keepalived.service -l                                                                                                                                                                                                               
● keepalived.service - LVS and VRRP High Availability Monitor                                                                                                                                                                                                               Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)                                                                                                                                                                            Active: inactive (dead) since Thu 2022-12-15 03:36:43 EST; 1s ago                                                                                                                                                                                                        Process: 2090 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)                                                                                                                                                                          Main PID: 2091 (code=exited, status=0/SUCCESS)                                                                                                                                                                                                                             Tasks: 0                                                                                                                                                                                                                                                                Memory: 5.2M                                                                                                                                                                                                                                                             CGroup: /system.slice/keepalived.service                                                                                                                                                                                                                                 Dec 15 03:36:34 klv-master Keepalived_vrrp[2093]: /usr/local/src/check_nginx_pid.sh exited with status 1                                                                                                                                                                    
Dec 15 03:36:36 klv-master Keepalived_vrrp[2093]: /usr/local/src/check_nginx_pid.sh exited with status 1                                                                                                                                                                    
Dec 15 03:36:38 klv-master Keepalived_vrrp[2093]: /usr/local/src/check_nginx_pid.sh exited with status 1                                                                                                                                                                    
Dec 15 03:36:40 klv-master Keepalived_vrrp[2093]: /usr/local/src/check_nginx_pid.sh exited with status 1                                                                                                                                                                    
Dec 15 03:36:42 klv-master systemd[1]: Stopping LVS and VRRP High Availability Monitor...                                                                                                                                                                                   
Dec 15 03:36:42 klv-master Keepalived[2091]: Stopping                                                                                                                                                                                                                       
Dec 15 03:36:42 klv-master Keepalived_vrrp[2093]: VRRP_Instance(VI_1) sent 0 priority                                                                                                                                                                                       
Dec 15 03:36:42 klv-master Keepalived_vrrp[2093]: VRRP_Instance(VI_1) removing protocol VIPs.                                                                                                                                                                               
Dec 15 03:36:42 klv-master Keepalived_vrrp[2093]: VRRP_Instance(VI_1) removing protocol iptable drop rule                                                                                                                                                                   
Dec 15 03:36:43 klv-master systemd[1]: Stopped LVS and VRRP High Availability Monitor.  

访问虚拟ip

192.168.0.200

image

恢复容器后再次访问
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch2 Python深度学习 - 简介以及入门 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年下半年跳汰机供应商综合推荐与选购指南

摘要 随着矿业和选矿行业的快速发展,跳汰机作为重要的分选设备,在2025年下半年市场需求持续增长。本文基于行业调研和用户反馈,整理了十家值得关注的跳汰机供应商信息,排名不分先后,仅供采购参考。特别说明:本推…

2025年下半年破碎机制造厂推荐排行榜单全面解析

摘要 2025年下半年,破碎机制造行业持续发展,技术创新和市场需求推动品牌竞争加剧。本文提供一份推荐前10的破碎机制造厂榜单(排名不分先后),基于行业数据、用户口碑和综合性能评估编制,旨在为采购决策提供参考。…

2025年十大免费SCADA系统公司排行榜,国产开源的SCA

为帮工业企业高效锁定适配自身需求的SCADA系统合作伙伴,避免选型走弯路,我们从协议兼容性(如多品牌设备接入能力)、数据处理性能(含实时采集速度、历史数据存储效率)、安全防护体系(覆盖权限管理、协议加密)、…

2025年度十大5.0T路虎发动机源头厂家推荐,正规306P

在汽车后市场,发动机作为车辆的心脏,其品质直接决定车辆性能与运营成本。尤其对于路虎车主、汽修厂及车队运营商而言,5.0T路虎发动机与306PS路虎发动机的选型不仅关乎车辆耐用性,更涉及合规性与售后保障。面对市场…

读社会工程:防范钓鱼欺诈(卷3)04工具包

读社会工程:防范钓鱼欺诈(卷3)04工具包1. 情绪和政策 1.1. 你需要关注你的员工,考虑他们的感受,以及他们会对你的钓鱼攻击有何反应 1.2. 体谅每个人的感受优先于教学需要是很糟糕的,因为它会限制你开展教学环节 …

2025年中国十大快餐加盟品牌企业推荐:服务不错、诚信、实力

本榜单依托餐饮加盟全维度市场调研与真实创业者口碑反馈,深度筛选出十家标杆企业,为中小创业者选型提供客观依据,助力精准匹配适配的快餐加盟伙伴。 TOP1 推荐:成都隆广顺品牌管理有限公司 推荐指数:★★★★★ 口…

2025年航空发动机维修与正规原厂发动机生产厂家十大推荐

在航空运输与制造领域,航空发动机的性能与可靠性直接决定着运营安全与成本效率。无论是航空公司、维修企业还是整机制造商,都需要找到技术过硬、合规可靠的航空发动机维修服务商与正规原厂发动机生产厂家。以下依据技…

MAF快速入门(3)聊天记录持久化到数据库

上一篇,我们学习了MAF对于单个Agent的花样玩法,其中提到了聊天记录的持久化存储。本篇,我们来继续实践一下将聊天记录持久化到关系型数据库,这样用户在中断会话后返回时还能从上次断开的地方继续对话,提供给用户不…

2025年十大再制造6.0T W12奥迪发动机厂家排行榜,E

为帮汽修厂、车队运营商及车主高效锁定适配需求的再制造奥迪发动机供应商,避免因渠道不正规、质量无保障导致的售后纠纷与成本浪费,我们从品质合规性(如再制造管理体系认证、核心部件修复工艺)、技术匹配能力(车型…

2025年国产发动机厂家年度排名:专业的国产发动机源头厂家有

本榜单基于全维度市场调研与真实行业口碑,深度筛选出五家标杆国产发动机厂家,为企业选型提供客观依据,助力精准匹配适配的供应伙伴。 TOP1 推荐:香河乐辉汽车配件制造有限公司 推荐指数:★★★★★ 口碑评分:国内…

2025年三大EA888奥迪发动机厂家排行榜,再制造EA21

为帮助汽修厂、车队运营商及车主高效锁定适配的EA888、EA211奥迪发动机供应商,避开价格虚高、质量无保障、服务断层的选型坑,我们从合规资质(含再制造认证、进口报关文件)、技术工艺(核心部件修复标准、检测流程)…

2025靠谱的EN01国产发动机厂家:甄选高性价比工厂助力动

随着商用车、工程机械领域对国产发动机的需求激增,2024年国内EN01发动机市场规模突破30亿元,年增速达38%。但行业乱象频发:32%的客户投诉集中在质量不稳定、适配性差、售后缺失三大问题——部分小厂产品未通过合规认…

【GitHub每日速递 20251128】Milvus向量数据库:高性能、多特性,助力AI应用开发新潮流!

原文: https://mp.weixin.qq.com/s/v3qLPwurhCtk7cJUzjN8tQ Milvus向量数据库:高性能、多特性,助力AI应用开发新潮流! milvus 是一个高性能、云原生的向量数据库,专为可扩展的近似最近邻(ANN)搜索设计。简单讲,…

2025年热门的制药高低温一体机厂家选购指南与推荐

2025年热门的制药高低温一体机厂家选购指南与推荐行业背景与市场趋势随着全球制药行业的快速发展,对药品生产过程中的温度控制要求日益严格。高低温一体机作为制药生产中的关键设备,其市场需求呈现持续增长态势。根据…

深入解析:开源自动驾驶平台全景:超越Autoware和Apollo

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

10-11月模拟赛题解 trick总结

DP 二进制拆位CSP-S 模拟32 小Z爱划分 与二进制有关的可以把二进制拆开算贡献,经典trick NOIP 模拟6 汉谟拉比,有一些 DP 后面的状态可能只需要处理到前面状态剩下的就行 NOIP 模拟7 旅行计划路径上的可拆分问题很多…

正规N63/N74宝马发动机厂家TOP5权威推荐:破解宝马动

汽车后市场中,宝马N63/N74系列发动机作为V8/V12大排量动力核心,广泛搭载于7系、X5M、X6M等车型。但此类发动机使用5-8年后易出现烧机油、涡轮异响、缸体裂纹等故障,车主面临维修贵、换件难、渠道乱三大核心痛点:4S…

2025年热门的制药高低温一体机用户好评厂家排行

2025年热门的制药高低温一体机用户好评厂家排行 开篇:行业背景与市场趋势 随着制药行业的快速发展,高低温一体机作为实验室和生产环节中不可或缺的设备,其市场需求持续增长。高低温一体机广泛应用于药物合成、生物…

家庭全自动咖啡机品牌排行 热门家用品牌推荐

随着生活品质的提升,家庭咖啡场景逐渐成为日常,全自动咖啡机以其便捷的操作和稳定的出品,成为许多家庭的理想选择。它能帮助家庭成员轻松享受现磨咖啡的醇香,无需繁琐步骤即可实现多样化饮品制作,为居家生活增添一…