安装

apt install libipset-dev  keepalived -y

创建账户

useradd -s/usr/sbin/nologin -M -g root keepalived_script

修改Linux

vim /etc/sysctl.conf
#在末尾追加一行:net.ipv4.ip_nonlocal_bind=1

创建Keepalived配置文件

vim /etc/keepalived/keepalived.conf

vrrp_script chk_appsvc {
#定义一个脚本文件,这个脚本文件将用来检测本机是否可用,如果可用则返回0
script /etc/keepalived/keepalived-check-appsvc.sh
interval 1
fall 2
rise 2
} vrrp_instance VI_1 {
#选择一个网卡
interface ens7 authentication {
auth_type PASS
auth_pass secr3t
} virtual_router_id 51 virtual_ipaddress {
10.1.96.100 #整个集群的对外地址
} track_script {
chk_appsvc
} #状态:MASTER BACKUP STOP FAULT
state MASTER
priority 101 unicast_src_ip 10.1.96.5 #本机地址(DIP)
unicast_peer {
10.1.96.3 #对端地址,其它机器的ip(DIP)
}
#状态切换动作脚本,定义了状态切换时执行的动作
notify /etc/keepalived/keepalived-action.sh
}

创建状态切换动作脚本

vim /etc/keepalived/keepalived-action.sh
chmod +x /etc/keepalived/keepalived-action.sh
#!/bin/bash

TYPE=$1
NAME=$2
STATE=$3 case $STATE in
"MASTER")
  systemctl start nginx
  exit 0
  ;;
"BACKUP"|"STOP")
#systemctl stop nginx
  exit 0
  ;;
"FAULT")
#systemctl stop nginx
  exit 0
  ;;
*)
  exit 1
  ;;
esac #当某个服务器成为MASTER的时候,启动nginx服务。

创建状态检测脚本

vim /etc/keepalived/keepalived-action.sh
chmod +x /etc/keepalived/keepalived-check-appsvc.sh
#!/bin/bash
exit 0 #返回0表示当前主机状态正常.如果返回非0,或者设备无法连接,就会触发转移.

使用Keepalived实现linux高可用集群的更多相关文章

  1. linux高可用集群(HA)原理详解(转载)

    一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个 节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务.高可用 ...

  2. linux高可用集群(HA)原理详解

    高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...

  3. 使用Keepalived构建LVS高可用集群

    LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...

  4. nginx+keepalived+consul 实现高可用集群

    继 负载均衡 之 nginx+consul+consul template,我这次将使用2台虚拟机,来做一个简单的双机负载均衡试验. 试验目标: 1. 当参加负载均衡的子节点服务,有任何其中一个或多个 ...

  5. 基于keepalived搭建MySQL高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  6. 003.Keepalived搭建LVS高可用集群

    一 基础环境 1.1 IP规划 OS:CentOS 6.8 64位 节点类型 IP规划 主机名 类型 主 Director Server eth0:172.24.8.10 DR1 公共IP eth1: ...

  7. 使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群

    由于网络架构的原因,在一般虚拟机或物理环境中常见的用 VIP 来实现双机高可用方案,无法照搬到 Azure 平台.但利用 Azure 平台提供的负载均衡或者内部负载均衡功能,可以达到类似的效果. 本文 ...

  8. 【转】Keepalived+Tengine实现高可用集群

    原文出处:http://502245466.blog.51cto.com/7559397/1301772 概述 近年来随着Nginx在国内的发展潮流,越来越多的互联网公司使用Nginx:凭Nginx的 ...

  9. Sqlserver on linux 高可用集群搭建

    一.环境准备 1 部署环境: 服务器数量:3台 Ip地址:192.168.1.191(主) 192.168.1.192(从) 192.168.1.193(从) 操作系统:CentOS Linux re ...

随机推荐

  1. 修改.net core 运行端口

    ASPNETCORE_URLS environment variable is ignored by "dotnet run" dotnet new web set ASPNETC ...

  2. 用actor model实现intel tbb这样的用法

    关于什么事actor model,什么事intel tbb这样的用法我就不详细说了,具体请上网查文档 class MyActor { F f; MyActor inputs[]; MyActor ou ...

  3. ElasticSearch:Lucene和ElasticSearch

    Lucene的概念: 关于索引 索引(index)和搜索(搜索),在lucene以及es里面索引是一个动作,即插入动作,包括创建索引以及为索引添加文档:所有则是针对索引(添加)的文档按照评分规则进行查 ...

  4. bzoj 2870 最长道路tree——边分治

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2870 关于边分治:https://www.cnblogs.com/Khada-Jhin/p/ ...

  5. python kafka client--confluent-kafka-python

    项目中需要使用python 向Kafka生产和消费数据,最初使用pykafka .后来发现pykafka不支持client.id. 最后,终于找到confluent-kafka. python kaf ...

  6. linux进程监控和简单的重启&服务的创建 参考自http://blog.csdn.net/lockheed_hong/article/details/73549837

    脚本文件 该脚本实现了一个检测进程是否存在,不存在的情况下重启进程并且记录日志. #! /bin/sh proc_name="console/queue/gift.php" # 进 ...

  7. Python高效编程技巧

    如何在列表,字典,集合中根据条件筛选数据 1.过滤掉列表[-1,-2,-3,4,5,6]中的负数和0 方法1,for循环 data = [-1, -2, -3, 4, 5, 6] res = [] f ...

  8. Azure PowerShell (15) 批量导出Azure ASM/ARM VM信息

    <Windows Azure Platform 系列文章目录> 客户又提出新的需求,需要知道所有订阅下的虚拟机数量.运行情况等信息. 我花了点时间,写了一个PowerShell脚本,发布到 ...

  9. [视频播放] HLS协议之M3U8、TS流详解

    本文转载自:<hls之m3u8.ts流格式详解> HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部 ...

  10. 使用Html Agility Pack快速解析Html内容

    Html Agility Pack 是一个开源的.NET 方案HTML解析器. 开源地址:https://github.com/zzzprojects/html-agility-pack 用法:vs上 ...