centos7下keepalived1.3.4安装与使用
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
一、下载keepalived
- http://www.keepalived.org/
如:keepalived-1.3.4.tar.gz
二、安装keepalived
- > tar xf keepalived-1.3.4.tar.gz
- > cd keepalived-1.3.4
- > ./configure --prefix=/data/keepalived
- > make && make install
复制/sbin/keepalived到/usr/sbin下
- > cp /data/keepalived/sbin/keepalived /usr/sbin/
keepalived默认会读取/etc/keepalived/keepalived.conf配置文件
- > mkdir /etc/keepalived
- > cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
复制sysconfig文件到/etc/sysconfig下
- > cp /data/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
复制启动脚本到/etc/init.d下
- > cd /data/keepalived-1.3.4
- > cp ./keepalived/etc/init.d/keepalived /etc/init.d/
- > chmod 755 /etc/init.d/keepalived
三、实验环境说明
两台虚拟机,IP分别为192.168.1.222和192.168.1.233,虚拟机与真实主机是桥接模式上网并互通。
分别装上了nginx和haproxy,nginx创建了两个虚拟主机,端口号为8080和8082,配置如下:
- server {
- listen 8080;
- server_name localhost;
- location / {
- root /data/www/site1;
- index index.html index.htm;
- }
- }
- server {
- listen 8082;
- server_name localhost;
- location / {
- root /data/www/site2;
- index index.html index.htm;
- }
- }
haproxy绑定80端口,反向代理这四台主机,配置如下:
- global
- log 127.0.0.1 local3 info
- chroot /data/haproxy
- user haproxy
- group haproxy
- daemon
- stats socket /data/haproxy/haproxy.sock mode 600 level admin
- stats timeout 2m
- defaults
- log global
- mode http
- option httplog
- option dontlognull
- timeout connect 5000
- timeout client 50000
- timeout server 50000
- frontend http_front
- bind *:80
- stats uri /haproxy?stats
- #默认使用的后端
- default_backend http_back
- backend http_back
- balance roundrobin
- option httpchk GET /index.html
- option forwardfor header X-Forwarded-For
- server node1 192.168.1.222:8080 check inter 2000 rise 3 fall 3 weight 30
- server node2 192.168.1.222:8082 check inter 2000 rise 3 fall 3 weight 30
- server node3 192.168.1.233:8080 check inter 2000 rise 3 fall 3 weight 30
- server node4 192.168.1.233:8082 check inter 2000 rise 3 fall 3 weight 30
三、keepalived的配置
两台虚拟主机上分别装上keepalived
keepalived的配置文件/etc/keepalived/keepalived.conf
- #全局配置
- global_defs {
- #接收通知的email
- notification_email {
- lackone@126.com
- }
- #发送通知的email
- notification_email_from haproxy_01@126.com
- #smtp服务器地址
- smtp_server 127.0.0.1
- smtp_connect_timeout 30
- #运行的标识
- router_id haproxy_01
- }
- #vrrp的实例配置
- #haproxy_01名称可自定义
- vrrp_instance haproxy_01 {
- #主节点
- state MASTER
- #实例绑定的网卡
- #注意centos7下第一块网卡不是eth0,请自行查看,不然keepalived无法启动成功
- interface eno16777736
- #虚拟路由ID,唯一
- virtual_router_id 51
- #权重
- priority 150
- #检查的时间间隔
- advert_int 2
- #验证
- authentication {
- auth_type PASS
- auth_pass haproxy_01
- }
- #设置虚拟IP地址
- virtual_ipaddress {
- 192.168.1.10
- 192.168.1.11
- }
- }
另一台主机上的配置只需修改
- state BACKUP
- priority 100
配置好后,启动keepalived服务
- > service keepalived start
查看网络接口列表
- > ip addr list
tcpdump查看,这里的eno16777736是我的网卡名
- > tcpdump -i eno16777736 -n 'host 224.0.0.18'
- 19:13:30.260858 IP 192.168.1.222 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 150, authtype simple, intvl 2s, length 24
- 19:13:32.261878 IP 192.168.1.222 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 150, authtype simple, intvl 2s, length 24
- 19:13:34.263286 IP 192.168.1.222 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 150, authtype simple, intvl 2s, length 24
然后我们手动把MASTER的keepalived关掉
- > service keepalived stop
然后再用tcpdump查看
- > tcpdump -i eno16777736 -n 'host 224.0.0.18'
- 19:16:05.120377 IP 192.168.1.233 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 2s, length 24
- 19:16:07.121645 IP 192.168.1.233 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 2s, length 24
- 19:16:09.122353 IP 192.168.1.233 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 2s, length 24
很明显看到已从222切换到了233了。
然后我们通过浏览器访问192.168.1.10或192.168.1.11可以看到后台服务切换正常,实现了222和233两台主机间服务的高可用。
centos7下keepalived1.3.4安装与使用的更多相关文章
- SVN CentOS7 下配置svn的安装及基础配置介绍
CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一. 实践环境 CentOS 7操作系统(CentO ...
- centos7下源码方式安装gitlab8.9+发送邮件+ldap
CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ...
- centos7下mysql5.7的安装与配置
centos7下MySQL5.7的安装与配置 下载 下载地址 根据系统和版本选择红框中的四个RPM包下载即可,然后放到centos7系统中的/opt目录下,等待稍后安装. 安装前的准备 1. 检查系统 ...
- inux centos7下源码 tar安装5.7.26详解
inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...
- CentOS7下MySQL5.7的安装-RPM方式
Installing MySQL on Linux Using RPM Packages 下载安装包 mysql下载地址:https://dev.mysql.com/downloads/mysql/ ...
- CentOS7下通过rpm方式安装MySQL及插入中文问题解决 [原创]
一 CentOS下通过rpm方式安装MySQL CentOS版本:CentOS-7 MySQL版本:MySQL-5.6.22 在网上搜了一下,Linux下安装MYSQL有三种方式: 1) 通过yum命 ...
- 【CentOS】在Centos7 下无图形界面安装 Oracle11g
目标 - 在虚拟机CentOS7中无图形界面安装Oracle11G R2版本 ① 系统要求以及准备 1. 物理内存不小于1G: 查看方式: # grep MemTotal /proc/meminfo ...
- centos7下redis和php-redis安装
centos7下redis安装和php-redis扩展安装 //一直yes就可以了 yum install redis //配置 whereis redis.conf vi /etc/redis.co ...
- centos7下oracle11g详细的安装与建表操作
一.oracle的安装,在官网下载oracle11g R2 1.在桌面单击右键,选择“在终端中打开”,进入终端 输入命令:su 输入ROOT密码: 创建用户组oinstall:groupadd oin ...
随机推荐
- 配置nginx实现windows/iis应用负载均衡(转载)
配置nginx实现windows/iis应用负载均衡 nginx是俄罗斯人开发的一款跨平台的高性能HTTP和反向代理服务器,可以利用它实现web应用服务器的负载均衡. 反向代理是指将用户请求通过代 ...
- jndi 小案例
JNDI就是为JAVA中命名和目录服务定义的JAVA API,是命名服务的抽象机制.在J2EE中,JNDI的目的是用来查找J2EE服务器的注册资源.只要该对象在命名服务器上注册过,且你知道命名服务器的 ...
- 18.3 redis 的安装
因为之前我们server不存东西 我们 发现 后打开的网页 是接手不到之前的变化,不能更新到最新的变化的. 我们需要做到server给client发最新的代码已达到同步 我们有三种做法同步到最新的代码 ...
- 18.1利用socket .io 实现 editor间代码的同步
首先,我们想实现在同一个页面editor 大家同时编辑 同步 所以能 我们需要这个url 作为我们 session id 或者叫聊天室的roomid 或者 反正就是保证他们在同一个list里面 就是 ...
- Canvas中 drawImage绘制图片不显示
在学习 html5中的 Canvas.drawImage时写了如下代码: <!doctype html> <html> <head><title>研究& ...
- 吴裕雄 python oracle子查询的用法(3)
import cx_Oracle conn = cx_Oracle.connect("scott/admin@localhost:1521/orcl")cursor = conn. ...
- python3进行汉字和unicode码的转换
输出某个unicode码对应的汉字和某个汉字对应的unicode编码. # -*- coding=UTF-8 -*- str1 = "\u6000"#某个汉字的unicode码 s ...
- hibernate flush clear的区别
有的时候你执行了更新什么的操作不一定能查出来:没有保存到数据库 以下的缓存是指一级缓存,即session:默认缓存是一级缓存: flush的意思就是执行sql,但是还没有commit,没有持久化:再清 ...
- java 基础-思维导图
思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具.了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板. 思维 ...
- 附加任务:团队作业7 Alpha冲刺
附加任务:团队作业7 Alpha冲刺 附加任务要求参考东北师范大学陈志勇老师博客:https://edu.cnblogs.com/campus/nenu/2016SE_NENU/homework/19 ...