linux集群技术(二)--keepalived(高可用集群)(二)

news/2024/3/29 17:59:06/文章来源:https://blog.csdn.net/qq_47800859/article/details/129138314
  1. 案例1--keepalived
  2. 案例2--keepalived  +  Lvs集群

1.案例1--keepalived

        1.1   环境

初识keepalived,实现web服务器的高可用集群。
    Server1:       192.168.26.144
    Server2:  192.168.26.169
           VIP:        192.168.26.190

        1.2   server1

创建etc下的keepalived目录,编辑配置文件:

# yum -y install keepalived

# vim /etc/keepalived/keepalived.conf

        ! Configuration File for keepalived
        global_defs {
         router_id 1                            #设备在组中的标识,设置不一样即可
         }

        #vrrp_script chk_nginx {                        #健康检查
        # script "/etc/keepalived/ck_ng.sh"     #检查脚本
        # interval 2                            #检查频率.秒
        # weight -5                             #priority减5
        # fall 3                                        #失败三次        
        # }

        vrrp_instance VI_1 {               #VI_1。实例名两台路由器相同。同学们要注意区分。
            state MASTER                        #主或者从状态
            interface ens32                     #监控网卡
            mcast_src_ip 192.168.0.118          #心跳源IP
            virtual_router_id 55                #虚拟路由编号,主备要一致。同学们注意区分
            priority 100                        #优先级
            advert_int 1                        #心跳间隔

            authentication {                    #秘钥认证(1-8位)
                auth_type PASS
                auth_pass 123456
            }

            virtual_ipaddress {                 #VIP
            192.168.26.190/24
                }

        #  track_script {                       #引用脚本
        #       chk_nginx
        #    }

        }

# scp -r /etc/keepalived/keepalived.conf  192.168.26.169:/etc/keepalived/

        用scp复制给server2

# systemctl enable keepalived.service
    开机启动keepalived

安装Nginx:

        rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
        yum -y install nginx
        systemctl enable nginx.service
        systemctl start nginx.service
        vim /usr/share/nginx/html/index.html

systemctl start keepalived.service

        1.3   server2

BACKUP服务器的配置需要几处修改:

# yum -y install keepalived

# vi /etc/keepalived/keepalived.conf

        router_id 1  改为  router_id 2

        state MASTER改为  state BACKUP
        mcast_src_ip 192.168.26.144改为backup服务器实际的IP mcast_src_ip 192.168.26.169
        priority 100改为priority 99

# systemctl enable keepalived.service

安装Nginx:

        rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
        yum -y install nginx
        systemctl enable nginx.service
        systemctl start nginx.service
        vim /usr/share/nginx/html/index.html

systemctl start keepalived.service

        1.4  客户机测试访问

访问VIP  http://192.168.26.190
拔掉master的网线。
访问VIP  http://192.168.26.190,观察网页已经切换

        1.5   关于keepalived对web状态未知的问题

对于上述实验;若maser服务器上的nginx服务出现了问题,此时用户再访问访问服务器是有问题的;

原因是keepalived监控的是接口IP状态。无法监控nginx服务状态

编辑监控脚本:

        --server1  添加Nginx监控脚本:

        # vim /etc/keepalived/ck_ng.sh

                #!/bin/bash
                #检查nginx进程是否存在
                counter=$(ps -C nginx --no-heading|wc -l)
                if [ "${counter}" = "0" ]; then
                #尝试启动一次nginx,停止5秒后再次检测
                    service nginx start
                    sleep 5
                    counter=$(ps -C nginx --no-heading|wc -l)
                    if [ "${counter}" = "0" ]; then
                #如果启动没成功,就杀掉keepalive触发主备切换
                        service keepalived stop
                    fi
                fi

        # chmod +x /etc/keepalived/ck_ng.sh

         --server2  添加Nginx监控脚本:

        # vim /etc/keepalived/ck_ng.sh

                #!/bin/bash
                #检查nginx进程是否存在
                counter=$(ps -C nginx --no-heading|wc -l)
                if [ "${counter}" = "0" ]; then
                #尝试启动一次nginx,停止5秒后再次检测
                    service nginx start
                    sleep 5
                    counter=$(ps -C nginx --no-heading|wc -l)
                    if [ "${counter}" = "0" ]; then
                #如果启动没成功,就杀掉keepalive触发主备切换
                        service keepalived stop
                    fi
                fi

        # chmod +x /etc/keepalived/ck_ng.sh

启动监控脚本    清除掉配置文件中的注释。    重启keepalived即可

2.案例2--keepalived  +  Lvs集群

        2.1  环境

keepalived+lvs集群

192.168.0.116    26.144  dr1    负载均衡器   master
192.168.0.117    26.169  dr2    负载均衡器
192.168.0.118    26.165    rs1     web1
192.168.0.119    26.166    rs2     web2

        2.2  在master上安装配置Keepalived:

# yum install keepalived  ipvsadm -y       ipvsadm安装并不启动

# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {                        
    router_id Director1    #两边不一样。
    }
    
vrrp_instance VI_1 {                
    state MASTER                #另外一台机器是BACKUP    
    interface ens33                #心跳网卡    
    virtual_router_id 51            #虚拟路由编号,主备要一致
    priority 150                #优先级    
    advert_int 1                #检查间隔,单位秒    
    authentication {
        auth_type PASS
        auth_pass 1111
        }
    virtual_ipaddress {
        192.168.26.190/24       dev      ens33       #VIP和工作接口
        }
    }
    
virtual_server 192.168.26.190 80 {        #LVS 配置,VIP
    delay_loop 3                #服务论询的时间间隔,#每隔3秒检查一次real_server状态
    lb_algo rr                #LVS 调度算法
    lb_kind DR                 #LVS 集群模式
    protocol TCP
    real_server 192.168.26.165 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3       #健康检查方式,连接超时时间
            }
        }
    real_server 192.168.26.166 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            }
        }
}

        2.3   在backup上安装keepalived:

# yum install keepalived   ipvsadm -y      ipvsadm安装并不启动

拷贝master上的keepalived.conf到backup上:

        # scp  /etc/keepalived/keepalived.conf 192.168.26.169:/etc/keepalived/

拷贝后,修改配置文件:

        router_id Director2
        state    BACKUP
        priority 100

        2.4   master和backup上启动服务:

#systemctl enable keepalived
# systemctl start keepalived
#reboot

        2.5   web服务器配置

web1和web2同配置

安装web测试站点:

        yum install -y httpd && systemctl start httpd && systemctl enable httpd
        netstat -antp | grep httpd
        # elinks 127.0.0.1

        自定义web主页,以便观察负载均衡结果

配置虚拟地址:

        #cp /etc/sysconfig/network-scripts/{ifcfg-lo,ifcfg-lo:0}
        #vim /etc/sysconfig/network-scripts/ifcfg-lo:0
        DEVICE=lo:0
        IPADDR=192.168.0.20
        NETMASK=255.255.255.255
        ONBOOT=yes
        其他行注释掉

配置路由:

        #vim /etc/rc.local
        /sbin/route add -host 192.168.0.20  dev lo:0
        在两台机器(RS)上,添加一个路由:route add -host 192.168.0.20 dev lo:0    
        确保如果请求的目标IP是$VIP,那么让出去的数据包的源地址也显示为$VIP

配置ARP:

        # vim /etc/sysctl.conf

        net.ipv4.conf.all.arp_ignore = 1
        net.ipv4.conf.all.arp_announce = 2
        net.ipv4.conf.default.arp_ignore = 1
        net.ipv4.conf.default.arp_announce = 2
        net.ipv4.conf.lo.arp_ignore = 1
        net.ipv4.conf.lo.arp_announce = 2

        忽略arp请求  可以回复

        # reboot

        2.6   测试:

1)观察lvs路由条目                      master上 查询 # ipvsadm -L

2)观察vip地址在哪台机器上        master上 查询 # ip a

3)客户端浏览器访问vip

4)关闭master上的keepalived服务,再次访问vip
        master上 关闭 # systemctl stop keepalived.service 

5)关闭web1站点服务,再次访问VIP      

        web1 # systemctl stop httpd

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

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

相关文章

网上插画教学哪家质量好,汇总5大插画培训班

网上插画教学哪家质量好?给大家梳理了国内5家专业的插画师培训班,最新五大插画班排行榜,各有优势和特色! 一:国内知名插画培训机构排名 1、轻微课(五颗星) 主打课程有日系插画、游戏原画、古风插…

2023年测试人跳槽新功略,涨薪10K+

软件测试是如何实现涨薪的呢?很多人眼中的软件测试岗位可能是简单的,技术含量不是那么高,就是看看需求、看业务、设计文档、然后点一点功能是否实现,再稍微深入一点就是测试下安装部署时会不会出现兼容性问题,以及易用…

技术学习-消息队列

什么是消息队列 可以简单理解为存放消息的队列,数据结构模型和队列一样,都是先进先出。主要用不同线程(Thread)/进程(Process) 为什么需要消息队列 (1)不同进程之间传递消息是,因为进程的耦合度高,改动一个进程,引发…

npm 上传自己的包

mkdir demo 创建一个新的文件夹 npm init 初始化项目 生成一个package.json文件 name version description等等touch index.js 创建一个node 可执行脚本新的js 文件 #!/usr/bin/env node // 必须在文件头加如上内容指定运行环境为node console.log(hello cli)在package.json 中…

【教程】GitStats代码统计工具(附GitLab API相关)

使用GitStats进行代码统计 官方文档:GitStats - git history statistics generator GitStats是基于Git的数据统计生成器,输出格式为HTML,可直接在浏览器打开查看,展现为图表形式的可视化数据,内容包括: 常…

图像识别技术解析:手写数字识别(一)

本文通过构建一个手写数字识别的程序来解析来自机器学习与深度学习的不同算法的特点,以及如何对识别效果进行改进。 一、如何构建一个手写数字识别程序 首先可以考虑构建一个简单的页面用于用户输入,也就是前端;接下来需要准备一个后端用于…

mac 好用的类似Xshell工具

下载royal TSX 5.1.1 http://share.uleshi.com/f/9490615-685692355-33bf1e修改mac的etc/hosts文件权限访达(鼠标右键) -> 前往文件夹 ->输入/private --> 打开etc/hosts --> 显示简洁(鼠标右键) --> 权限改成读和写hosts文件写入如下内容:# Royal T…

空间直线方程及其与面线的夹角

一、空间直线的方程 1.1 空间直线的一般方程 空间直线 LLL 可以看做是两个平面 Π1\Pi_1Π1​ 和 Π2\Pi_2Π2​ 的交线,那么就可以用两个平面方程来表示这个直线: {A1xB1yC1zD10A2xB2yC2zD20(1)\left\{ \begin{aligned} A_1xB_1yC_1zD_10\\ A_2xB_2yC…

卷起来了,2023金三银四自动化测试面试题精选【字节二面】

面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来…

Office 365 备份与恢复

Microsoft Office 365中的不同服务几乎可以随时访问,这要归功于Microsoft的99.9%正常运行时间记录。但是,Office 365步履蹒跚的一个方面是提供了一种从意外数据丢失中恢复的方法。Microsoft 提供的数据保留功能并非适用于所有数据丢失情况的可行解决方案…

简述操作系统的文件系统

前言 文件系统是操作系统中负责管理持久数据的子系统,将用户的文件保存在硬盘等硬件设备中,即使断电了数据也不会丢失。 对于用户而言,文件是存储的最小单位,再少的数据也需要以文件的形式存储在外部存储器中。以硬盘为例&#…

FLV-初学总结

FLV-初学总结 从零开始仅学习了一下午的总结,本文非常稚嫩… 本文为纯初学者的学习记录,为了方便理解,内容未必严谨,可以用作纯新手的入门了解篇。本文主要的参考链接如下⬇️ 详细了解FLV:FLV官方文档(Ve…

论文解读 | [CVPR2019] 基于自适应文本区域表示的任意形状场景文本检测

目录 1 研究背景及意义 2 总体设计 3 方法论 3.1 自适应文本区域表示 3.2 文本建议 3.3 建议改进 4 损失函数 5 实验及结果 1 研究背景及意义 现有的场景文本检测方法使用固定点数的多边形来 表示文本区域。例如,水平文本使用2个点(左上/右下)表示文本区域&…

VR全景带你打卡《狂飙》经典取景地!

热度“狂飙”!电视剧《狂飙》的取景地——江门墟顶老街人气火爆,720VR全景带您了解,这个具有新活力的老街区,蛙色3DVR提供技术支持!通过航拍VR全景,全方位展示江门历史文化街区,720浏览&#xf…

【Java基础】反射

概述 引入 package ref;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r…

Revit项目浏览器的标准设置应用和快速视图样板?

一、Revit项目浏览器的标准设置应用 设计院阶段的BIM应用,主要是Revit出施工图方面,需要涉及到很多标准的制定方面的问题,而且这个标准不仅仅是一个命名标准,还有很多的符合本院的出图标准等等,本期就不做详细讨论&…

实验室通风橱通风柜的构成

一、实验室通风橱通风柜简介通风柜是一个密闭的同时又能排风的工作空间。其设计目的是为了控制、稀释以及排除这个密闭空间内产生制造的烟气、气雾和微粒,同时它也是实验室预防泄露控制的重要组成部分。在大多数实验室中,通风柜是保护实验室操作者免受有…

vulnhub LordOfTheRoot_1.0.1

总结:端口敲门,CVE-2015-8660提权, 目录 下载地址 漏洞分析 信息收集 端口敲门 网站分析 方法一 ssh登录提权 方法二 下载地址 LordOfTheRoot_1.0.1.ova (Size: 1.6 GB)Download: http://www.mediafire.com/download/m5tbx0dua05szjm…

OpenGL学习日记之模型绘制

自己编译运行过程中遇到的一些问题 下载Assimp已编译的lib(因为我们公司的电脑有很多权限和限制,也不能自己安装一些没有报备的软件,所以愁方便我就没有用cMake自己编译了)找到一位免费分享的博主的。 https://blog.csdn.net/lady_killer9/article/deta…

【论文阅读】SCRFD: Sample and Computation 重分配的高效人脸检测

原始题目Sample and Computation Redistribution for Efficient Face Detection中文名称采样和计算 重分配的 高效人脸检测发表时间2021年5月10日平台ICLR-2022来源Imperial College, InsightFace文章链接https://arxiv.org/pdf/2105.04714.pdf开源代码官方实现&…