Docker 进步之路
  • Introduction
  • Docker 简介
  • Docker 安装与启动
  • Docker 的运行机制
  • Docker 的底层技术
  • Portainer详解(Web端管理平台)
    • 资料
  • Docker 的使用
    • Docker 客户端指令
      • Docker 操作指令
      • Docker 管理指令
      • 常用命令
    • Dockerfile
      • 基本结构与常用指令
    • 应用部署=初级
    • Docker 数据卷(volume)
    • 迁移与备份
    • Docker私有仓库
  • Mysql 集群
    • 常见 MySQL 集群方案
    • PXC集群
      • 1、PXC 集群安装
      • 2、PXC 集群负载均衡
      • 3、负载均衡的高可用方案
      • 4、热备份数据
  • Redis 集群
    • Redis 集群介绍
    • Redis 集群搭建
  • web服务器集群
    • 负载均衡
    • 负载均衡的高可用方案
  • Docker 三剑客
    • Docker Machine
    • Docker Compose
    • Swarm 集群
    • 附录:网络 network
  • Docker 集群(K8S)
  • 资料
  • 注意
  • Mongodb 集群
    • 资料
  • 常用操作笔记
  • 配置远程访问
Powered by GitBook
On this page
  • 为什么要采用双机热备?
  • 利用Keepalived实现双机热备方案
  • 安装Keepalived
  • Keepalived 配置文件
  • 启动Keepalived

Was this helpful?

  1. Mysql 集群
  2. PXC集群

3、负载均衡的高可用方案

Previous2、PXC 集群负载均衡Next4、热备份数据

Last updated 5 years ago

Was this helpful?

为什么要采用双机热备?

单节点Haproxy不具备高可用,必须要有冗余设计

利用Keepalived实现双机热备方案

原理:虚拟出来一个虚拟IP,keepalived去争抢,谁争抢到谁就是主服务器。

具体方案架构:

当应用程序访问192.168.99.65发送数据库请求,这个请求就会路由到docker的这个虚拟ip(182.18 .0.15)上,然后转发到主服务器容器,再负载均衡到PXC集群的某个mysql数据库。

安装Keepalived

keepalived必须要安装在Haproxy所在的容器之内。

# 进入到后台运行haproxy1的docker容器
$ docker exec -it haproxy1 bash
$ apt-get update
$ apt-get install keepalived

建议apt-get加速,比如设置成163镜像

Keepalived 配置文件

Keepalived的配置文件是/etc/Keepalived/Keepalived.conf

修改配置文件

方式1:可以在容器内修改

$ apt-get install vim
$ vim /etc/keepalived/keepalived.conf

方式2:宿主机上定义好,传入到容器中

配置文件说明:

vrrp_instance  VI_1 {
    state  MASTER
    interface  eth0
    virtual_router_id  51
    priority  100
    advert_int  1
    authentication {
        auth_type  PASS
        auth_pass  123456
    }
    virtual_ipaddress {
        172.18.0.15
    }
}

state MASER: 标识Keepalived的身份(Master 主服务器,BACKUP备用服务器)。主服务器要抢占虚拟IP,备用服器不会抢占IP。

如果把每个Keepalived的配置文件都定义成身份是MASTER,这些节点启动之后都会去争抢虚拟IP,只会有一个节点抢到,其他节点身份自动降级为SLAVE。

interface eth0:虚拟ip保存到eth0网卡,宿主机可以访问,局域网其他电脑是看不到这个eth0网卡,所以需要在宿主机上把eth0这个网卡里的虚拟IP映射到局域网上的某一个虚拟ip上,所以后续还在宿主机上安装Keepalived。

virtual_router_id 51:虚拟路由标识,MASTER和BACKUP的虚拟路由标识必须一致。标识可以 0~255.

priority 100:MASTER权重要高于BACKUP,数字越大优选级越高。

advert_int 1:Keepalived节点之间同步检查的实际间隔,单位为秒,主备之间必须一致。

authentication:Keepalived节点之间通信需要验证,主从服务器验证方式。主备必须使用相同 密码爱能正常通信。

virtual_ipaddress:虚拟IP地址.可以设置多个虚拟IP地址,每行一个。注意和你的PXC集群同网段.

启动Keepalived

haproxy1容器中启动Keepalived

$ service keepalived start

宿主机器上ping 一下虚拟IP测试

$ ping 172.18.0.15

182.18.0.15是Docker内的虚拟IP不能被外网使用,所以需要借助宿主机器上安装keepalived,把192.168.99.65可以被外网访问的这个ip映射到Docker这个虚拟ip182.18 .0.15。