设为首页 收藏本站
查看: 921|回复: 0

[经验分享] lvs高可用

[复制链接]

尚未签到

发表于 2018-12-29 09:58:18 | 显示全部楼层 |阅读模式
  下面说的是lvs高可用集群
  

  一、高可用集群
  1、负载均衡
  负载均衡的三种会话保持:session sticky、session replication、session server。
  三种共享存储:NAS、SAN、DS。
  

  在lvs-nat中,调度器放在路由和核心层之间;
  在lvs-dr中,调度器连接分布层、接入层。
  

  隔离(fence)设备:电源交换机
  

  2、VRRP协议 -----------实现高可用集群,实现浮动路由,故障倒换
  keepalived --------------高可用lvs集群的实现方式,可用于后端服务器检查
  corosync + pacemaker --------实现高可用集群
  

  master选择:优先级相同,比较IP地址,IP地址大的为master。
  

  (1)、vrrp协议基础
  虚拟路由器:虚拟路由器接口
  VRID:虚拟路由器标识符。功能:描述路由器的分组情况、确定该分组的MAC地址。
  master:虚拟IP的拥有者,能够完成数据转发的路由器
  backup:检测master路由器状态
  VIP:虚拟路由器的IP地址,拥有VIP的就是master
  VMAC:虚拟MAC地址
  优先级:选举master的参数,范围:0-255,越大优先级越高。
  优先级 0:放弃选举master
  优先级 255:虚拟IP地址的拥有者的优先级
  抢占式:设备恢复后,要抢占原来的master主动权。
  非抢占式:设备恢复后,不抢占master主动权,选择做备份。
  

  (2)、vrrp协议工作模式、认证方式
  VRRP的工作模式:单实例、多实例。
  单实例:master/backup
  多实例:一个实例上是master,在另一个实例上是backup。--------------负载分担
  

  VRRP的认证方式:无认证、简单字符认证、md5认证。
  

  

  二、keepalived
  1、keepalived基础:
  keepalived:----------------VRRP协议在Linux中的软件实现
  keepalived目的是,实现高可用的ipvs服务,简称ka。
  

  keepalived功能:
  1).可为VIP地址的节点,自动生成ipvs规则;
  2).可为RS进行健康状态检查;
  3).可以调用脚本;
  

  keepalived的组件:控制板、内存管理、I/O复用器、核心组件。
  核心组件:
  checker:第二核心
  VRRP stack:第一核心
  smtp:状态转换信息发送到邮箱
  watch dog:看门狗,匹配checker和VRRP stack
  ipvs wrapper:内核与用户空间交互
  netlink reflactor:内核与用户空间交互
  

  高可用前提:
  1).节点间,时间同步
  2).节点间,通过主机名互相通信
  3).节点间,关闭防火墙、设置规则
  4).各节点间,root用户基于ssh的秘钥认证互相通信
  

  2、keepalived配置文件
  instance:实例
  

  # ntpdate IP -------------对主机进行系统时间与网络同步
  # vi /ect/ntp.conf
  

  (1)、keepalived的程序环境:
  主配置文件:/etc/keepalived/keepalived.conf
  主程序文件:/usr/sbin/keepalived
  Unit File:keepalived.server
  

  (2)、主配置文件:/etc/keepalived/keepalived.conf
  包括以下两段:
  GLOBAL CONFIGURATION
  VRRPD CONFIGURATION
  LVS CONFIGURATION
  1)------------------GLOBAL CONFIGURATION--------------------------
  Global definitions
  global_defs
  {
  notification_email
  {
  root@localhost ---------接收方邮件地址
  }
  notification_email_from keepalived@localhost -----------发送方邮件地址
  smtp_server 127.0.0.1 -------邮件服务器地址
  router_id drct1  ---------设置路由器ID,区分不同组
  vrrp_mcast_group4 224.100.100.18 -------------IPv4组播地址
  }
  

  2)------------------------VRRPD CONFIGURATION---------------------------------
  VRRP synchronization group(s)
  VRRP instance(s)
  

  vrrp_instance inside_network { ----------定义实例
  state MASTER ------------指定vrrp状态
  interface eno16777736 --------------与vrrp协议绑定的端口
  virtual_router_id 51 ----------------虚拟路由IP,确定组
  priority 100  ---------------节点优先级
  advert_int 1  ------------vrrp通告的时间间隔
  authentication {
  auth_type PASS  ----------密码验证方式
  auth_pass Hudlnej7 ----------设置密码
  }
  virtual_ipaddress {
  172.16.72.101/32 brd 172.16.72.101 dev eno16777736 label eno16777736:0 -------虚拟IP地址
  }
  nopreempt ----------非抢占模式
  preempt_delay 300 -------------抢占开始前时间
  notify_master | ------------状态改变时的触发参数
  notify_backup |
  notify_fault |
  }
  

  3)--------------------------LVS CONFIGURATION--------------------------------
  Virtual server group(s)
  Virtual server(s)
  

  Virtual server vip vport|fwmark  {
  delay_loop  --------------服务轮询间隔
  lb_algo rr|wrr|lc|wlc|lblc|sh|dh -------------lvs调度算法
  lb_kind NAT|DR|TUN ------------lvs服务类型
  persistence_timeout  ------------------持久连接超时时间
  protocol TCP ------------服务协议
  sorry_server   -----------所有RS不可用时,的错误提示
  real_server   { -------------添加RS
  weight  -------------RS权重
  notify_up | -------------RS状态
  notify_down |
  HTTP_GET|SSL_GET {
  url {
  path  ------------后端健康检查的URL
  digest   ------------检测md5是否发生变化
  status_code  ------------据状态码校验RS可靠性
  }
  nb_get_retry  ------------重试次数
  delay_before_retry  -------------重试前的延时
  connect_ip  ----------检测RS的哪一个IP地址
  connect_port   ---------------检测的第二个端口
  bindto  -------------健康检测源IP地址
  bind_port  ------------健康检测源端口
  connect_timeout  ------------超时时长
  }
  TCP_CHECK {
  connect_ip  //向当前的RS的哪个IP地址发起健康状态检测请求;
  connect_port   //向当前的RS的那二个PORT发起健康状态检测请求;
  bindto  //发出健康检测时的源IP地址;
  bind_port  //发出健康检测时的源端口;
  connect_timeout  //连接超时时长;
  }
  }
  

  3、keepalived调用外部辅助脚本(2步)
  (1)、vrrp_instance【之前】
  vrrp_script SCRIPT_NAME {
  script ""
  interval  -----------间隔
  weight -
  }
  

  (2)、vrrp_instance【之中】
  track_script {
  SCRIPT_NAME
  }
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657125-1-1.html 上篇帖子: keepalived 的配置文件 下篇帖子: 简单实现keepalived
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表