1.什么事高可用

启动相同业务的两个系统 一台故障另一台顶上 彼此可以互相检测存活状态 集群是相同服务组成的集群 彼此之间不知道

2.ip高可用的实现工具

keepalived 还有硬件

3.keepalived如何实现高可用

keepalived基于VRRP协议 虚拟“路由”冗余协议

4.VRRP解决的问题

通过虚拟的ip地址切换 保证虚拟ip不会下线 保证服务的可用性

5.流量的调度方式

1.抢占式
2.非抢占式

6.安装

安装

yum install keepalived

7.配置

lb01

! Configuration File for keepalived

global_defs {
   router_id 192.168.1.201 #身份标识

}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_port.sh 7443"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state MASTER        #状态标识
    interface eth0	# 根据实际网卡更改
    virtual_router_id 251  #虚拟路由id标识   一组vrrp协议 id相同
    priority 100        #优先级
    advert_int 1        #检测间隔时间
    mcast_src_ip 192.168.1.201
    nopreempt           #非抢占式  主节点回复后不会抢占vip

    authentication {
        auth_type PASS   #检测明文认证
        auth_pass 11111111  #加测明文密码
    }
    track_script {
         chk_nginx
    }
    virtual_ipaddress {
        192.168.1.200  #虚拟ip
    }
}

lb02

cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived
global_defs {
        router_id 192.168.1.202
	script_user root
        enable_script_security 
}
vrrp_script chk_nginx {
        script "/etc/keepalived/check_port.sh 7443"
        interval 2
        weight -20
}
vrrp_instance VI_1 {
        state BACKUP
        interface eth0		# 根据实际网卡更改
        virtual_router_id 251
        mcast_src_ip 192.168.1.202
        priority 90
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass 11111111
        }
        track_script {
                chk_nginx
        }
        virtual_ipaddress {
                192.168.1.200
        }
}

两套配置文件的差别

参数 主节点 备节点
router_id 192.168.1.201 192.168.1.202
state MASTER BACKUP
priority 100 90

8.非抢占式

1.两个节点的state都必须配置为BACKUP
2.两个节点都必须配置上 nopreempt
3.其中一个节点的优先级必须高于另外一个节点的优先级
lb01

! Configuration File for keepalived

global_defs {
   router_id 192.168.1.201

}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_port.sh 7443"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0	# 根据实际网卡更改
    virtual_router_id 251
    priority 100
    advert_int 1
    mcast_src_ip 192.168.1.201
    nopreempt

    authentication {
        auth_type PASS
        auth_pass 11111111
    }
    track_script {
         chk_nginx
    }
    virtual_ipaddress {
        192.168.1.200
    }
}

lb02

! Configuration File for keepalived
global_defs {
        router_id 192.168.1.202
	script_user root
        enable_script_security 
}
vrrp_script chk_nginx {
        script "/etc/keepalived/check_port.sh 7443"
        interval 2
        weight -20
}
vrrp_instance VI_1 {
        state BACKUP
        interface eth0		# 根据实际网卡更改
        virtual_router_id 251
        mcast_src_ip 192.168.1.202
        priority 90
        advert_int 1
        nopreempt
        authentication {
                auth_type PASS
                auth_pass 11111111
        }
        track_script {
                chk_nginx
        }
        virtual_ipaddress {
                192.168.1.200
        }
}