发表于 2018-12-30 12:25:51

keepalived 高可用调度器配置

  一、vrrp 概述
  1.VRRP协议
  虚拟路由冗余协议,是IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议.
  VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混
  乱,准许主机使用单路由器,及时在在实际第一跳路由器使用失败的情形下仍能够维护路由器
  间的连通性。
   2.VRRP基本术语
http://s1.运维网.com/wyfs02/M01/80/24/wKiom1c5QDnw3h94AAKFMyZEoHU139.jpg
  3.VRRP工作原理
http://s2.运维网.com/wyfs02/M00/80/24/wKiom1c5Q4ezG_f4AAGCclsdDcU471.jpg
   4.VRRP的主要功能
  1.master 路由器的选择功能
  2.master 路由器的状态通告
  3.VRRP 认证功能
  5.VRRP高可用工作模型
  1.主备模型
  联网业务由master路由器承担,当master路由器出现故障时候,才会由选出来的backup路由器
  接替主路由器的工作
http://s5.运维网.com/wyfs02/M01/80/24/wKiom1c5Q5yS2A3wAADCC921Bcc917.jpg
  2.主主模型
  在路由器的一个接口上可以创建多个虚拟机路由器,似的该路由器可以在一个虚拟路由器中作
  为master路由器,同时在其它的虚拟路由器中作为backup路由器,主主模型备份方式可以实现
  负载分担的功能
http://s2.运维网.com/wyfs02/M02/80/24/wKiom1c5RIHQ8Zj3AADwHmelu00857.jpg
  

   二、keepalived高可用调度器
  1.keepalived 的功能
     keepalived程序是vrrp协议在linux主机上以守护进程方式的实现。能够根据配置
     文件生成ipvs规则,并对各RealServer的健康做检测,以及loadbalance主机和Backup
     主机之间failover的实现
     CentOS 6.4+,程序包已经在base源提供;
  2.程序组件有
      1.核心程序 、IO复用器、内存管理、配置文件分析器
      http://s5.运维网.com/wyfs02/M00/80/24/wKiom1c5RqaSWk9FAAG6DSX0ajw432.jpg
  3.keepalived高可用几圈配置前提
  1.各节点时间要同步,不能超过1s,一半使用网络时间服务器(ntp-server)
  2.确保iptables及selinux不会成为障碍
  3.各节点之间可通过主机名想通信,节点的名称设定与hosts文件中解析的主机名都要保持一
  致,#uname -n 获得的主机名,与解析的主机名要相同;
  4.各节点之间基于秘钥认证的方式通过ssh互信通信;
  备注:第3.4条非必须
  三、keepalived 环境配置详解
  1.程序包的安装
      yum instll keepalived -y
  备注:CentOS 6.4+,程序包已经在base源提供
  2.生成的配置文件有
      主配置文件:/etc/keepalived/keepalived.conf
  Unitfile:/usr/lib/systemd/system/keepalived.service
  配置文件:/etc/sysconfig/keepalived
     全局配置详解;
  global_defs {
  notification_email {
  acassen@firewall.loc
  failover@firewall.loc
  sysadmin@firewall.loc
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 192.168.200.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  http://s2.运维网.com/wyfs02/M02/80/27/wKiom1c5ckPiIHSDAAB9jdlgn7Y783.jpg
  3.配置vrrp实例:
     vrrp instance:虚拟路由器
        vrrp_instance Name {
               ...
     }
     vrrp synchronization group
        vrrp_sync_group Name {
               ...
     }
      1)基本配置;
http://s2.运维网.com/wyfs02/M01/80/27/wKiom1c5c_aBLGPTAACTw5w4fiQ429.jpg
  2)认证方式配置;
http://s3.运维网.com/wyfs02/M02/80/24/wKioL1c5dS7iAGTOAABp_x2i9DA382.jpg
  3)虚拟IP地址配置
  http://s4.运维网.com/wyfs02/M01/80/25/wKioL1c5dZ_gDAPZAAA3t8HsVMg543.jpg
  4.keepalived主备模型配置
  1.主节点配置
  
  global_defs {
  notification_email {
   root@localhost
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id node1
  }
  

  vrrp_instance VI_1 {
  state MASTER
  interface eno16777736
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  192.168.1.200
  }
  }
  2.备用节点配置
  
  global_defs {
  notification_email {
  root@localhost
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id node1
  }
  

  vrrp_instance VI_1 {
  state BACKUP
  interface eno16777736
  virtual_router_id 51
  priority 98
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  192.168.1.200
  }
  }
  主备节点配置完毕后进行服务的启动工作
  主节点;systemctl start keepalived.service
  然后使用ip addr list 进行查看工作,如下所示
  
  eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 00:0c:29:48:cf:50 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.107/24 brd 192.168.1.255 scope global dynamic eno16777736
  valid_lft 5109sec preferred_lft 5109sec
      inet 192.168.1.200/32 scope global eno16777736
         valid_lft forever preferred_lft forever   这个就是虚拟vip 已经显示在这里了。
  inet6 fe80::20c:29ff:fe48:cf50/64 scope link
  valid_lft forever preferred_lft forever
  如果现在主节点停止服务的话,备用节点将自动上线,来代替主节点的工作。如下所示
  使用命令systemctl stop keepalived.servcie
  我们来看一下备节点的情况
  
  eno16777736:mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 00:0c:29:08:0d:91 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.129/24 brd 192.168.1.255 scope global dynamic eno16777736
  valid_lft 4305sec preferred_lft 4305sec
      inet 192.168.1.200/32 scope global eno16777736 现在备用节点已经得到了IP地址。
         valid_lft forever preferred_lft forever
      inet6 fe80::20c:29ff:fe08:d91/64 scope link
  valid_lft forever preferred_lft forever
  
如果主服务自动上线的话,我们的备用节点又会自动退出,主节点继续工作,备用节点去后台暂时休息。
  
  5.keepalived 双主配置
  
  节点1-node1:
  vrrp_instance VI_1 {
  state MASTER
  interface eno16777736
  virtual_router_id 171
  priority 100
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 0c5UMiJo
  }
  

  virtual_ipaddress {
  192.168.1.200 dev eno16777736 label eno16777736:0
  }
  

  track_script {
  chk_down
  }
  

  notify_master "/etc/keepalived/notify.sh master"
  notify_backup "/etc/keepalived/notify.sh backup"
  notify_fault "/etc/keepalived/notify.sh fault"
  }
  

  
  priority 98vrrp_instance VI_2 {
  state BACKUP
  interface eno16777736
  virtual_router_id 172
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 0c6UMiJo
  }
  

  virtual_ipaddress {
  192.168.1.201 dev eno16777736 label eno16777736:1
  }
  

  track_script {
  chk_down
  }
  

  notify_master "/etc/keepalived/notify.sh master"
  notify_backup "/etc/keepalived/notify.sh backup"
  notify_fault "/etc/keepalived/notify.sh fault"
  }
  
  节点2-node2:
  vrrp_instance VI_1 {
  state BACKUP
  interface eno16777736
  virtual_router_id 171
  priority 98
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 0c5UMiJo
  }
  

  virtual_ipaddress {
  192.168.1.200 dev eno16777736 label eno16777736:0
  }
  

  track_script {
  chk_down
  }
  

  notify_master "/etc/keepalived/notify.sh master"
  notify_backup "/etc/keepalived/notify.sh backup"
  notify_fault "/etc/keepalived/notify.sh fault"
  }
  

  vrrp_instance VI_2 {
  state MASTER
  interface eno16777736
  virtual_router_id 172
  priority 100
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 0c6UMiJo
  }
  

  virtual_ipaddress {
  192.168.1.201 dev eno16777736 label eno16777736:1
  }
  

  track_script {
  chk_down
  }
  

  notify_master "/etc/keepalived/notify.sh master"
  notify_backup "/etc/keepalived/notify.sh backup"
  notify_fault "/etc/keepalived/notify.sh fault"
  }
  

  好了,就写到这里吧,写博客看来也挺痛苦的,继续加油,师傅领进门修行靠个人。继续跟着马哥前行吧。
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  



页: [1]
查看完整版本: keepalived 高可用调度器配置