加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 运营中心 > LNMP > 正文

linux系统lnmp架构keepalived高可用

发布时间:2023-02-17 13:59:21 所属栏目:LNMP 来源:互联网
导读:keepalived 注意:任何软件都可以使用keepalived来做高可用 keepalived如何实现高可用 VRRP:虚拟路由冗余协议 比如公司的网络是通过网关进行上网的,那么如果该路由器故障了,网关无法转发报文了,此时所有人都无法上网了,怎么办? 通常做法是给路由器增加

      }
  Backup配置
      vrrp_instance VI_1 {
          state BACKUP
          priority 100
          nopreempt
      }
  # 就是两台都要是backup和加入nopreempt
  高可用会存在的问题:
  1、如何确定谁是主节点谁是备节点?
 
  MASTER(主节点)
  BACKUP(备节点)
  priority(优先级,主节点的优先级要大于备节点的优先级)
  2、如果Master故障,Backup自动接管,那么Master回复后会夺权吗?
 
  如果配置的是抢占式,MASTER会抢回VIP
  如果配置的是非抢占式,两个都BACKUP,额外加一个参数:nopreempt,非抢占式不会抢VIP
  3、如果两台服务器都认为自己是Master会出现什么问题
 
  两台机器上面都有VIP,两台机器都认为自己是主节点,如果都有VIP,会导致网站访问不了
 
  1、服务器网线松动等网络故障
  2、服务器硬件故障发生损坏现象而崩溃
  3、主备都开启firewalld防火墙
 
  注意:
 
  负载均衡:lvs harproxy Nginx
 
  1.如果企业中用的是物理服务,机房。我们可以做keepalived的高可用
 
  2.如果企业中用的是云服务器,(阿里云...)不能做keepalived.... slb
 
  打开防火墙重启主节点keepalived就会出现两台都有10.0.0.3的IP
 
 
 
  # 解决方法在备节点上面编辑脚本,检测到主节点上面有10.0.0.3而且自己上面也有就关闭备节点的keepalived
  # 获取公钥
  [root@lb02 ~]# ssh-keygen
  Generating public/private rsa key pair.
  Enter file in which to save the key (/root/.ssh/id_rsa):
  Enter passphrase (empty for no passphrase):
  Enter same passphrase again:
  Your identification has been saved in /root/.ssh/id_rsa.
  Your public key has been saved in /root/.ssh/id_rsa.pub.
  The key fingerprint is:
  SHA256:1JwxWufRc2FSIYQcyiEbZ3l1CjlTDbzkLISkKJo5ITs root@lb02
  The key's randomart image is:
  +---[RSA 2048]----+
  |       o.=Bo@O+*o|
  |      . OBo#.+O..|
  |.. . . ooo* B..o |
  |..= .  .   . +   |
  |E=      S   .    |
  | ..              |
  |                 |
  |                 |
  |                 |
  +----[SHA256]-----+
  # 把公钥传送到10.0.0.5
  [root@lb02 ~]#  ssh-copy-id -i .ssh/id_rsa.pub root@10.0.0.5
  # 在备节点编辑检测脚本
  [root@lb02 ~]# cat jcip.sh
  #!/bin/sh
  vip=10.0.0.3
  lb01_ip=10.0.0.5
  #while true;do
      ping -c 2 $lb01_ip &>/dev/null
      if [ $? -eq 0 ];then
          lb01_vip_status=$(ssh $lb01_ip "ip add|grep $vip|wc -l")
          lb02_vip_status=$(ip add|grep $vip|wc -l)
          if [ $lb01_vip_status -eq 1 -a $lb02_vip_status -eq 1 ];then
                  echo '主节点和备节点都有VIP,开始关闭备节点的VIP...'
                  systemctl stop keepalived
          fi
      else
          echo '主节点无法通信'
      fi
  #sleep 5
  #done
  # 运行脚本
  [root@lb02 ~]# ip  a|grep 10.0.0.3 && sh jcip.sh && ip a|grep 10.0.0.3
      inet 10.0.0.3/32 scope global eth0
  主节点和备节点都有VIP,开始关闭备节点的VIP...
  [root@lb02 ~]#

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读