首页 > 系统相关 >centos7安装keepalived和双活主机配置

centos7安装keepalived和双活主机配置

时间:2024-02-04 20:55:06浏览次数:34  
标签:00 keepalived 备机 virtual centos7 VIP 192.168 双活

  1. yum安装

    yum install -y keepalived
    

    配置文件位置 /etc/keepalived/keepalived.conf
    这总方式安装的keepalived版本比较旧,centos7里面默认是1.3.5,是2017年的版本。

    需要新的版本可以考虑编译安装
    查看yum安装默认的版本

    [root@vm200 ~]# yum info keepalived
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.jlu.edu.cn
     * extras: mirrors.jlu.edu.cn
     * updates: mirrors.jlu.edu.cn
    Available Packages
    Name        : keepalived
    Arch        : x86_64
    Version     : 1.3.5
    Release     : 19.el7
    Size        : 332 k
    Repo        : base/7/x86_64
    Summary     : Load balancer and high availability service
    URL         : http://www.keepalived.org/
    License     : GPLv2+
    Description : Keepalived provides simple and robust facilities for load balancing
                : and high availability.  The load balancing framework relies on the
                : well-known and widely used Linux Virtual Server (IPVS) kernel module
                : providing layer-4 (transport layer) load balancing.  Keepalived
                : implements a set of checkers to dynamically and adaptively maintain
                : and manage a load balanced server pool according their health.
                : Keepalived also implements the Virtual Router Redundancy Protocol
                : (VRRPv2) to achieve high availability with director failover.
    
  2. 编译安装

    • 安装依赖

      yum -y install make gcc openssl-devel libnfnetlink-devel libnl3-devel net-snmp-devel
      
    • 下载离线包
      https://www.keepalived.org/software/keepalived-2.2.8.tar.gz

    • 解压
      tar -zxvf keepalived-2.2.8.tar.gz

    • 配置

      #打开keepalived目录
      cd  keepalived-2.2.8
      
      #配置,使用默认安装路径,如果要制定安装路径 ./configure --prefix=/usr/local/keepalived
      #默认安装是安装在当前目录下面的 keepalived目录下面的
      ./configure
      
      
    • 编译安装

      make && make install
      
    • 复制文件

      #复制可执行文件
      cp keepalived/etc/init.d/keepalived /etc/init.d
      
      #复制配置,里面指定启动的配置文件
      # KEEPALIVED_OPTIONS="-D"  -f指定配置文件,默认是 /etc/keepalived/keepalived
      #KEEPALIVED_OPTIONS="-f /etc/keepalived/keepalived.conf.sample -D -d -S 0"
      cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
      
    • 日志文件位置 /var/log/messages

    • 配置文件位置 /etc/keepalived/keepalived

      ! Configuration File for keepalived
      
      global_defs {
         notification_email {
           [email protected]
           [email protected]
           [email protected]
         }
         notification_email_from [email protected]
         smtp_server 192.168.200.1
         smtp_connect_timeout 30
         router_id vm200            #一般写主机名
      }
      
      vrrp_instance VI_101.250 {
          state MASTER               #备机写BACKIP
          interface ens33            #网卡名字
          virtual_router_id 166      #备机和主机的虚拟路由ID要一样
          priority 100               #优先级备机应该比主低
          advert_int 1			   #发送arp包间隔
          authentication {
              auth_type PASS        #授权账号密码主备相同
              auth_pass 123456
          }
          virtual_ipaddress {
              192.168.101.250       #指定VIP,可以指定多个,一个一行,可以指定当前能访问的通的任意子网IP
          }
      }
      
    • 启动服务

      systemctl start keepalived
      
    • 实测 通过 VIP(192.168.101.250)可以访问到 vm200,如果vm200的keepalived停了以后,VIP会飘向vm202。
      用ifconfig查不到虚拟IP
      需要使用 ip addr 才行

      [root@vm200 ~]# ip addr
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host
             valid_lft forever preferred_lft forever
      2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:c0:31:ff brd ff:ff:ff:ff:ff:ff
          inet 192.168.100.200/16 brd 192.168.255.255 scope global noprefixroute ens33
             valid_lft forever preferred_lft forever
          inet 192.168.101.250/32 scope global ens33
             valid_lft forever preferred_lft forever
          inet6 fe80::f33f:4ccc:7ab4:1a9c/64 scope link noprefixroute
             valid_lft forever preferred_lft forever
          inet6 fe80::a1cd:819c:9969:7130/64 scope link tentative noprefixroute dadfailed
             valid_lft forever preferred_lft forever
      
  3. VIP 虚拟IP

  4. VRRP 虚拟路由冗余协议

  5. kill -9 VIP 可能不回收问题

    keepalived的 被kill -9 的时候可能会VIP没有回收,据说pkill keepalived 可以避免

  6. 抢占式和非抢占式

    keepalived默认的工作模式是抢占式的,主节点上线以后优先级比较高,会强制抢占主,可以设置为非抢占模式。

    使用非抢占式配置

    • 所有节点指定nopreempt(最低优先级的可以不指定)
    • 所有节点都state都要写成BACKUP
    vrrp_instance VI_1 {
        state MASTER               #备机写BACKIP
        interface ens33            #网卡名字
        virtual_router_id 166      #备机和主机的虚拟路由ID要一样
        priority 100               #优先级备机应该比主低
        advert_int 1			   #发送arp包间隔
    	nopreempt                  #非抢占模式
    	#preempt_delay 300          #抢占间隔
        authentication {
            auth_type PASS        #授权账号密码主备相同
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.100.250       #指定VIP,可以指定多个,一个一行
        }
    }
    
  7. keepalived双活主机

    双主单活的情况下两台服务器只有一个VIP,同时只有一台对外可见。
    我们可以通2个VIP互为主备,来实现双主双活。

    DNS上把两个VIP都配置上。
    双活必须要是抢占式,如果不是抢占式,那么第一台起来的服务器会获取所有VIP。

    VIP1:192.168.101.250
    VIP2:192.168.101.251

    主机配置

    vrrp_instance VI_101.250 {
        state MASTER               #非抢占模式都是BACKUP
        interface ens33            #网卡名字
        virtual_router_id 166      #备机和主机的虚拟路由ID要一样
        priority 100               #优先级备机应该比主低
        advert_int 1			   #发送arp包间隔
        authentication {
            auth_type PASS        #授权账号密码主备相同
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.101.250       #指定VIP,可以指定多个,一个一行,可以指定当前能访问的通的任意子网IP
        }
    }
    
    
    vrrp_instance VI_101.251 {
        state BACKUP               #非抢占模式都是BACKUP
        interface ens33            #网卡名字
        virtual_router_id 167      #备机和主机的虚拟路由ID要一样
        priority 80               #优先级备机应该比主低
        advert_int 1			   #发送arp包间隔
        authentication {
            auth_type PASS        #授权账号密码主备相同
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.101.251       #指定VIP,可以指定多个,一个一行,可以指定当前能访问的通的任意子网IP
        }
    }
    	
    

    主机B配置

    vrrp_instance VI_101.250 {
        state BACKUP               #非抢占模式都是BACKUP
        interface ens33            #网卡名字
        virtual_router_id 166      #备机和主机的虚拟路由ID要一样
        priority 80               #优先级备机应该比主低
        advert_int 1			   #发送arp包间隔
        authentication {
            auth_type PASS        #授权账号密码主备相同
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.101.250       #指定VIP,可以指定多个,一个一行,可以指定当前能访问的通的任意子网IP
        }
    }
    
    
    vrrp_instance VI_101.251 {
        state MASTER               #非抢占模式都是BACKUP
        interface ens33            #网卡名字
        virtual_router_id 167      #备机和主机的虚拟路由ID要一样
        priority 100               #优先级备机应该比主低
        advert_int 1			   #发送arp包间隔
        authentication {
            auth_type PASS        #授权账号密码主备相同
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.101.251       #指定VIP,可以指定多个,一个一行,可以指定当前能访问的通的任意子网IP
        }
    }
    	
    
  8. LVS 也可以解决类似nginx这种不支持高可用的软件的单点故障问题

  9. 默认配置文件里面 virtual_server 部分是设置 虚拟主机和 真实主机映射的,效果类似LVS(一个IP对应多台真实服务器器)。如果是为了用keepalived给别的程序保活,那么可以把virtual_server相关的都删掉。

  10. keepalived用在哪些场景

    • keepalived可以给任意软件做保活处理。通过检查脚本查查程序是否活着,如果死了可以直接在脚本中启动指定程序。
    • keepalive+VIP 可以解决那些原生不支持高可用,但是又需要高可用的情况,比如nginx

标签:00,keepalived,备机,virtual,centos7,VIP,192.168,双活
From: https://www.cnblogs.com/cxygg/p/18006980

相关文章

  • centos7安装docker
    在CentOS7上安装Docker可以按照以下步骤进行操作:更新系统软件包列表:shellsudoyumupdate-y添加Docker的官方仓库源。创建并编辑 /etc/yum.repos.d/docker-ce.repo文件:shellsudovi/etc/yum.repos.d/docker-ce.repo将以下内容复制到该文件中保存:text[docker-ce]name......
  • centos7 如何安装与使用 Anaconda
    简介: Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)。Anaconda是跨平台的,有......
  • linux centos7+apache2+php
    Thisisbasicenvironmenttoservephpapplicationframework.Wedon'tneedaDatabaseinthiscase.MakeaserveroncentosEnvironmentSettingupsomeenvironment(phpandapacheenvironment)Touchthefileandpastetheweb-shellsamplecode.Chec......
  • centos7升级openssh到9.0
    一、安装telnet作为备份连接用yuminstalltelnet-servertelnetxinetd二、启动telnet服务systemctlstarttelnet.socketsystemctlstartxinetdsystemctlstatustelnet.socketsystemctlstatusxinetd三、修改配置vim/etc/pam.d/remote注释掉这行#auth......
  • Centos7.6安装Openstack
    1.主机配置关闭防火墙#关闭防火墙systemctlstopfirewalld#开机禁止启动systemctldisablefirewalld关闭selinuxvi/etc/sysconfig/selinux在第7行设置SELINUX=disabledsetenforce0#临时生效,如果忘记设置,后续Httpd服务会因为权限问题无法启动修改主机名hostn......
  • centos7安装jenkins
    war安装去jenkins官网下载war包下载最新的包,旧的包插件支持有问题,会导致装不上插件,如果是中文官网,最外面的版本一般都很老,直接去历史发型版里面下载最新的,低版本的jenkins会下载不下来合适版本的插件,jenkins的插件库里面只能获取到最高版本的插件,并且不会向下兼容低版本的j......
  • centos7 yum redis5-7
    (1).Redis概述Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键值型)数据库(非关系型数据库),并提供多种语言的API。Redis是一个高性能的Key-Value数据库。它的出现很大程度补偿来Memcached这类Key-Value型存储的不足,在部分场合下可......
  • centos7安装gitLab
    yum安装安装opensshsudoyuminstall-ycurlpolicycoreutils-pythonopenssh-serverperlsudosystemctlenablesshdsudosystemctlstartsshd安装gitLab#配置镜像源curl-fsSLhttps://packages.gitlab.cn/repository/raw/scripts/setup.sh|/bin/bash#yum安......
  • CentOS7 网络配置
    我是在安装系统时先在可视化界面手动配置的,可以点击保存后方便查看配置是否有效然后从/etc/sysconfig/network-scripts/ifcfg-ens33文件中复制全文TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="......
  • centOS7环境配置
    一台新的云服务器,如何配置基础环境:0.更新软件包和存储库sudoyumupdate-y1.安装gitsudoyuminstallgit-ygit--version2.安装nodeJSsudoyuminstallepel-releasesudoyuminstallnodejsnode--versionsudoyuminstallnpm--enablerepo=epel......