keepalived安装配置实战心得(实现高可用保证网络服务不间断)



一、准备2台虚拟机 

   安装的系统是:centos-release-7-1.1503.el7.centos.2.8.x86_64

二、每个虚拟机添加两个网卡

   1、网络连接模式为 桥接模式(复制网络连接状态)

   2、IP地址均

        1号机器:第一个网卡IP静态配置 192.168.1.219

第二个网卡IP地址为动态分配 (DHCP)

2号机器:第一个网卡IP静态配置 192.168.1.94

第二个网卡IP地址为动态分配 (DHCP)





三、安装keepalived (1,2号机器都装)

   1、在终端里面运行: yum install keepalived

   2、默认安装目录是:/etc/keepalived/

   3、配置文件在:/etc/keepalived/keepalived.conf





四、安装一个简单的web服务,比如Apache (1,2号机器都装)

   1、在终端里面运行: yum install httpd

   2、默认安装目录是:/etc/httpd/

   3、配置文件在:/etc/httpdd/conf/httpd.conf

   4、网站主目录默认是: /var/www/html/

   5、在主目录下手工增加 一个index.html页面(用于测试)

      cd /var/www/html/ 

      vi index.html (随便输入几个字符比如:1号机就输入:“1号机”; 2号机就输入:“2号机”)

      保存一下

   

五、进行keepalived配置 (目的是任何一个机器挂了,不影响网站的访问)

   1、编辑1号机器的/etc/keepalived/keepalived.conf内容如下:



! Configuration File for 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_DEVEL1 #路由ID所有节点都一样

}





vrrp_instance VI_1 {

   state MASTER

   interface eno33554944 #eth0 这是第二块网卡的标识,根据你的时机情况来,具体可以查看 /etc/sysconfig/network-scripts/

   virtual_router_id 51

   priority 100 #keepalived节点的优先级,主的机器比从的大

   advert_int 1

   authentication {

auth_type PASS

auth_pass 1111

   }

   virtual_ipaddress {

192.168.1.222  #对外的keepalived的虚拟IP地址(简单的说可以理解成你的域名就指向这个IP地址,keepalived保证哪个机器活着哪个机器就是这个对外的IP)

   }

}





virtual_server 192.168.1.222 80 {

   delay_loop 6

   lb_algo rr 

   lb_kind NAT

   persistence_timeout 50

   protocol TCP





   sorry_server 192.168.1.222 80





   real_server 192.168.1.219 80 {

weight 1

HTTP_GET {

   url { 

     path /var/www/html/index.html

     #digest 640205b7b0fc66c1ea91c463fac6334d

   }

  

   connect_timeout 3

   nb_get_retry 3

   delay_before_retry 3

}

   }





   real_server 192.168.1.94 80 {

weight 1

HTTP_GET {

   url { 

     path /var/www/html/index.html

     #digest 640205b7b0fc66c1ea91c463fac6334c

   }

   connect_timeout 3

   nb_get_retry 3

   delay_before_retry 3

}

   }

}





   2、编辑2号机器的/etc/keepalived/keepalived.conf内容如下:

! Configuration File for 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_DEVEL1 #路由ID所有节点都一样

}





vrrp_instance VI_1 {

   state BACKUP

   interface eno16777736 #eth0 这是第二块网卡的标识,根据你的时机情况来,具体可以查看 /etc/sysconfig/network-scripts/

   virtual_router_id 51

   priority 99  #keepalived节点的优先级,主的机器比从的大

   advert_int 1

   authentication {

auth_type PASS

auth_pass 1111

   }

   virtual_ipaddress {

192.168.1.222 #对外的keepalived的虚拟IP地址(简单的说可以理解成你的域名就指向这个IP地址,keepalived保证哪个机器活着哪个机器就是这个对外的IP)

   }

}



#虚拟服务映射关系我们的目的是当你访问192.168.1.222 自动指向真实的活着的服务器

virtual_server 192.168.1.222 80 {

   delay_loop 6

   lb_algo rr 

   lb_kind NAT

   persistence_timeout 50

   protocol TCP





   sorry_server 192.168.1.222 80





   #真实的服务器 1号机

   real_server 192.168.1.219 80 {

weight 1

HTTP_GET {

   url { 

     path /var/www/html/index.html

     #digest 640205b7b0fc66c1ea91c463fac6334d

   }

  

   connect_timeout 3

   nb_get_retry 3

   delay_before_retry 3

}

   }





   #真实的服务器 2号机

   real_server 192.168.1.94 80 {

weight 1

HTTP_GET {

   url { 

     path /var/www/html/index.html

     #digest 640205b7b0fc66c1ea91c463fac6334c

   }

   connect_timeout 3

   nb_get_retry 3

   delay_before_retry 3

}

   }

}





六、启动服务

    1、service httpd start (启动apache,1,2号机都启动)

    2、service keepalived start (启动keepalived,1,2号机都启动)

    启动之后可以通过以下命令查看运行状态

    3、service httpd status (查看apache服务的状态)

    4、service keepalived status (启动keepalived服务的状态)

    通过以下命令保证开机自动启动

    3、chkconfig httpd on (apache服务开机自动给启动)

    4、chkconfig keepalived on (keepalived服务开机自动给启动)





七、验收成果

    随便找一个机器在浏览器中输入:

http://192.168.1.222/

    通过对1、2号机的网络的断开和连接查看浏览器显示的内容,如果任何一个机器网络断了或挂了,6秒后还能正常访问说明大功告成

    6秒是我们在keepalived 中设置的,你也可以根据实际需要进行改动





八、收工

一个高可用、服务不间断的网络环境就搞定了哦

本人原创,未经许可,可以转载,学习知识嘛:)

keepalived安装配置实战心得(实现高可用保证网络服务不间断)的更多相关文章

  1. [ Openstack ] Openstack-Mitaka 高可用之 网络服务(Neutron)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  2. keepalived安装实现nginx主备高可用

    . keepalived安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt ...

  3. [ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  4. [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  5. Redis安装、主从配置及两种高可用集群搭建

    Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154 ...

  6. Keepalived安装配置

    一.  介绍 keepalived:是一个类似于 layer3, 4 & 7 交换机制的软件,也就是我们平时说的第 3 层.第 4 层和第 7层交换. Keepalived 的作用是检测 we ...

  7. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  8. Keepalived+LVS+Nginx负载均衡之高可用

    Keepalived+LVS+Nginx负载均衡之高可用 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常 ...

  9. Keepalived+Nginx+tomcat实现系统的高可用

    Keepalived+Nginx+tomcat实现系统的高可用 1:安装vmware虚拟机 2:安装linux系统,我自己下载的centos6.5 3:安装JDK,tomcat 解压tomcat到/u ...

随机推荐

  1. Proxy Hosted Virtual

    http://books.sonatype.com/nexus-book/reference/confignx-sect-manage-repo.html Public Repositories 对外 ...

  2. 休息,考完了MCSD

    终于考完了~这次的证书签名居然还是鲍尔默的.

  3. genymotion无法连接相机问题

    genymotion模拟器即时打开了相机的开关,也无法连接到相机.这是因为其他进程占用了相机,虚拟设备无法获得,可以尝试: 1.不关闭模拟器,重启adt的Eclipse 2.重启ADB,adb kil ...

  4. application cache 应用缓存

    这些应用还是要自己实现一遍,否则真不知道哪里会出问题. 客户端: <!DOCTYPE html> <html manifest = 'demo.appcache'> <h ...

  5. Oracle sql 优化の常用方式

    1.不要用 '*' 代替所有列名,特别是字段比较多的情况下 使用select * 可以列出某个表的所有列名,但是这样的写法对于Oracle来说会存在动态解析问题.Oracle系统通过查询数据字典将 ' ...

  6. Python学习-21.Python的代码注释

    在Python中有两种注释,一种是普通注释,另一种是文档注释. 普通注释是使用#开头 print('output something') # here is comment 而Python中多行注释也 ...

  7. think in java 手记(一)

    工作之余,不知道要做些什么.该做的事情都完成的差不多了,想看一下spring的东西,毕竟这些东西用的多.但是又想看一下关于javaee的东西,这个里面的设计模式多.想了一会儿,觉得这些无非都是工具,j ...

  8. java 集合stream操作

    分组 Map<Integer, List<T>> group = List.stream().collect(Collectors.groupingBy(T::getField ...

  9. Sql语句在SqlServer中创建数据库、表格并添加约束

    通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: -- 使用master数据库 use master -- ...

  10. Win(Phone)10开发第(5)弹,本地媒体服务器的一些注意事项

    首先有个wp上的http服务器 http://wphttpserver.codeplex.com/ 使用方式: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...