Keepalived+LVS高可用服务器

使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务:

  • 路由器对外公网IP地址为202.114.106.20
  • 路由器内网IP地址为192.168.0.254
  • 路由器需要设置SNAT及DNAT功能
  • LVS1调度器真实IP地址为192.168.0.10
  • LVS2调度器真实IP地址为192.168.0.20
  • 服务器VIP地址设置为192.168.0.253
  • 真实Web服务器地址分别为192.168.0.1、192.168.0.2
  • 使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致

使用5台虚拟机,1台作为Linux路由器、2台作为LVS调度器、2台作为Real Server、物理机作为客户端。

一:配置网络环境

1)设置Web服务器网络参数

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

  1. DEVICE=eth0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.0.1
  5. NETMASK=255.255.255.0
  6. GATEWAY=192.168.0.254
  7. DNS1=202.106.0.20

# vim /etc/sysconfig/network-scripts/ifcfg-lo:0

  1. DEVICE=lo:0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.0.253
  5. NETMASK=255.255.255.255

# vim /etc/sysctl.conf

  1. .. ..
  2. net.ipv4.conf.all.arp_ignore = 1
  3. net.ipv4.conf.lo.arp_ignore = 1
  4. net.ipv4.conf.lo.arp_announce = 2
  5. net.ipv4.conf.all.arp_announce = 2

# sysctl -p

# systemctl restart NetworkManager

2)自定义Web页面

# echo “192.168.0.1” > /var/www/html/index.html

3)启动Web服务器软件

# systemctl start httpd;systemctl enable httpd

4)设置LVS调度器网络参数

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

  1. DEVICE=eth0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.0.10
  5. NETMASK=255.255.255.0
  6. GATEWAY=192.168.0.254
  7. DNS1=202.106.0.20

# systemctl restart NetworkManager

5)设置Linux路由器网络参数

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

  1. DEVICE=eth0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=202.114.106.20
  5. DNS1=202.106.0.20

# vim /etc/sysconfig/network-scripts/ifcfg-eth1

  1. DEVICE=eth0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.0.254
  5. NETMASK=255.255.255.0
  6. DNS1=202.106.0.20

# systemctl restart NetworkManager

6)设置Linux路由器

# sed -i '/ip_forward/s/0/1/' sysctl.conf //开启路由转发

# sysctl -p

二:调度器安装Keepalived与ipvsadm软件

注意:两台LVS调度器执行相同的操作。

安装软件

# yum install -y keepalived # systemctl enable keepalived # yum install -y ipvsadm

三:部署Keepalived实现LVS-DR模式调度器的高可用

1)LVS1调度器设置Keepalived,并启动服务

# vim /etc/keepalived/keepalived.conf

  1. global_defs {
  2. notification_email {
  3. admin@tarena.com.cn //设置报警收件人邮箱
  4. }
  5. notification_email_from ka@localhost //设置发件人
  6. smtp_server 127.0.0.1 //定义邮件服务器
  7. smtp_connect_timeout 30
  8. router_id lvs1 //设置路由ID号
  9. }
  10. vrrp_instance VI_1 {
  11. state MASTER //主服务器为MASTER
  12. interface eth0 //定义网络接口
  13. virtual_router_id 50 //主辅VRID号必须一致
  14. priority 100 //服务器优先级
  15. advert_int 1
  16. authentication {
  17. auth_type pass
  18. auth_pass forlvs //主辅服务器密码必须一致
  19. }
  20. virtual_ipaddress { 192.168.0.253 }
  21. }
  22. virtual_server 192.168.0.253 80 { //设置VIP为192.168.0.253
  23. delay_loop 6
  24. lb_algo wrr //设置LVS调度算法为RR
  25. lb_kind DR //设置LVS的模式为DR
  26. persistence_timeout 1
  27. protocol TCP
  28. real_server 192.168.0.1 80 {
  29. weight 1 //设置权重为1
  30. TCP_CHECK {
  31. connect_timeout 3
  32. nb_get_retry 3
  33. delay_before_retry 3
  34. }
  35. }
  36. real_server 192.168.0.2 80 {
  37. weight 2 //设置权重为2
  38. TCP_CHECK {
  39. connect_timeout 3
  40. nb_get_retry 3
  41. delay_before_retry 3
  42. }
  43. }

# systemctl start keepalived

# ipvsadm -Ln

2)LVS2调度器设置Keepalived(参照LVS1)

四:客户端测试

客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。

原文发布于微信公众号 - 吴柯的运维笔记(wukeyy18s)

原文发表时间:2017-10-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云审计

使用云审计实时监控腾讯云账户

用户开通了云审计服务以后,用户便可以清晰的知道自己的云账户中的资源被哪个账号在什么时候从哪个IP发起过什么操作。

381140
来自专栏小狼的世界

Kubernetes基础:编排调度的那些Controllers

Kubernetes提供了很多Controller资源来管理、调度Pod,包括Replication Controller、ReplicaSet、Deploym...

18220
来自专栏我的小碗汤

Web应用测试最佳工具Burp Suite

Burp Suite是Web应用程序测试的最佳工具之一,可以对请求的数据包进行拦截和修改,扫描常见的web安全漏洞,暴力破解登录表单、遍历数据等等。

13120
来自专栏惨绿少年

keepalived实现服务高可用

第1章 keepalived服务说明 1.1 keepalived是什么? Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集...

56200
来自专栏大数据架构师专家

Keepalived工作原理

27530
来自专栏Hadoop实操

如何实现CDH元数据库MySQL的高可用

在前面Fayson讲过《如何实现CDH元数据库MySQL的主主互备》,那如何做到MySQL的高可用呢?本篇文章主要介绍如何使用Keepalived实现MySQL...

51730
来自专栏散尽浮华

Linux系统下的ssh使用(依据个人经验总结)

对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验...

77970
来自专栏技术博客

比NotePad++更好的文本代码(C#)编辑器Sublime Text

 前两天在博客园看到@晴天猪的博客发表的关于他使用的代码编辑器,自己索性试了一下,果断好用,自己也来记录一下。以便以后配置使用。接下来我配置的主要是简单的编译C...

55620
来自专栏.Net移动开发

关于发布IOS的方法(本人亲身经历折腾很久终于成功)

前情提要:这位.NET程序员兄弟使用Smobiler开发了一个APP,尽管Smobiler云平台已经最大限度的简化了iOS应用的打包操作,但仍绕不开苹果公司强制...

16910
来自专栏强仔仔

Navicat注册机万能破解

Navicat虽然很好用,但是需要破解。今天就给大家介绍一种简单有效的破解方法,也就是利用注册机软件进行暴力破解。 具体破解步骤如下: 1、下载Navicat1...

574100

扫码关注云+社区

领取腾讯云代金券