使用haproxy+keepalived实现Mariadb负载均衡

controller2: 10.100.2.52  haproxy+keepalived
controller3: 10.100.2.53  haporxy+keepalived
vip:10.100.2.99
network1: 10.100.2.61 mariadb-galera-1
network2: 10.100.2.62 mariadb-galera-2
compute1: 10.100.2.71 mariadb-galera-3
controller2:
yum  install -y haproxy keepalived
vim /etc/keepalived/keepalived.conf
global_defs {
    router_id controller2
}
vrrp_script chk_haproxy {
    script "/etc/keepalived/chk_haproxy.sh"
    interval 1
    weight 2
}
vrrp_instance VI_1 {
    state SLAVE
    interface ens161
    virtual_router_id 201
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_haproxy
    }
    virtual_ipaddress {
        10.100.2.99/24
    }
    track_interface {
        ens161
    }
}
controller3:
router_id controller3
state MASTER
priority 99
vim /etc/keepalived/chk_haproxy.sh
#!/bin/bah
chkha=`ps -C haproxy --no-header |wc -l`
if [ $chkha -eq 0 ];then
  systemctl stop keepalived
fi
chmod +x /etc/keepalived/chk_haproxy.sh
vim /etc/haproxy/haproxy.cfg
global
    log 127.0.0.1 local2
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
    maxconn 4000
    user haproxy
    group haproxy
    daemon
    spread-checks              3
    tune.bufsize               32768
    tune.maxrewrite 1024
    tune.ssl.default-dh-param  2048
defaults
    log global
    log 127.0.0.1 local3
    mode http
    option httplog
    option dontlognull
    retries 10
    option redispatch
    timeout http-request 10s
    timeout queue 1m
    timeout connect 10s
    timeout client 1m
    timeout server 1m
    timeout http-keep-alive 10s
    timeout check 10s
    maxconn 3000
listen mariadb
    bind *:3306
    mode tcp
    balance roundrobin
    server network1 10.100.2.61:3306 weight 5
    server network2 10.100.2.62:3306 weight 5
    server compute1 10.100.2.71:3306 weight 5
listen stats
    bind *:1080
    mode http
    option httplog
    maxconn 10
    stats enable
    stats refresh 30s
    stats uri /stats
    stats realm MaCluster\ Haproxy
    stats auth admin:admin
    stats hide-version
    stats admin if TRUE
systemct  start haproxy keepalived.service
systemctl enable haproxy keepalived.service 

kolla对接exteral Maraidb Galera Cluster

参考搭建galera Cluster 文档
```bash
1. Enabling External MariaDB support
vim /etc/kolla/globals.yml
enable_mariadb: "no"
vim multinode
[mariadb]
10.100.2.99
vim e/tc/kolla/globals.yml
database_address: "10.100.2.99"
2.使用预设数据库/用户 #
vim  /etc/kolla/globals.yml
use_preconfigured_databases: "yes"
keystone_database_user: "keystone" keystone
glance_database_user: "glance" glance
nova_database_user: "nova"  nova nova_cell0
nova_api_database_user: "nova" nova_api
neutron_database_user: "neutron"  #neutron
cinder_database_user: "cinder" #cinder
manila_database_user: "manila" #manila
panko_database_user: "panko" # panko
trove_database_user: "trove" # trove
aodh_database_user: "aodh" # aodh
gnocchi_database_user: "gnocchi" # gnocchi
octavia_database_user: "octavia" # octavia
rally_database_user: "rally"   #rally
palcement_database_user: "placement" # placement
barbican_database_user: "barbican" # barbican
ironic_database_user: "ironic" # ironic-api
ironic_inspector_database_user: "ironic" # ironic-inspector
heate_database_user: "heat" # heat
grafana_database_user: "grafana"
mysql -uroot -popenstack
# keystone
MariaDB [(none)]> CREATE DATABASE keystone;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'openstack';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'openstack';
sed -i -r -e 's/([a-z_]{0,}database_password:+)(.*)$/\1 openstack/gi' /etc/kolla/passwords.yml

参考文档:
https://docs.openstack.org/kolla-ansible/stein/reference/databases/external-mariadb-guide.html

https://www.cloudandheat.com/blog/tutorial-part-2-highly-available-mariadb-galera-cluster-with-floating-ip/

https://www.cnblogs.com/fawaikuangtu123/p/10915229.html

Linux运维--14.Kolla部署OpenStack使用external MariaDB Galera Cluster的更多相关文章

  1. Linux运维---16. Kolla部署OpenStack外接rabbit集群

    # 前提时rabbit集群已经搭建完成 vim /etc/kolla/globals.yml enable_rabbitmq: "no" rpc_transport_url: &q ...

  2. Linux运维--12.手动部署Rabbit集群

    1.安装rabbit组件 10.100.2.51 controller1 10.100.2.52 controller2 10.100.2.53 controller3 #每个节点 yum insta ...

  3. Linux运维--11.手动部署Galera Cluster

    1.搭建galera集群 yum install epel-release yum install centos-release-openstack-stein #1.1 安装mariadb yum ...

  4. 从零起步做到Linux运维经理, 你必须管好的23个细节

    “不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...

  5. 从零起步做到Linux运维经理,你必须管好的23个细节

    不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题. 如何成为运维经理.一般来说,运维经理大概有两种出身,一种是从底层最基 ...

  6. Linux 运维入门到跑路书单推荐

    一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...

  7. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  8. Linux运维工程师面试

    一.Linux操作系统知识 1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块?   2.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解? ...

  9. Linux运维企业架构实战系列

    Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...

随机推荐

  1. js—数组那些事儿

    数组维度升级 创建一维数组 //创建一维数组 var a=[]; var b=new Array(); var c=[1,2,'w']; var d=[1,2,[1,2]]; 创建二维数组 var c ...

  2. linux文件系统相关命令(df/du/fsck/dumpe2fs)

    一.文件系统查看命令df 格式 df [选项] [挂载点] 选项 名称 作用 -a 显示所有的文件系统信息,包括特殊文件系统,如/proc,/sysfs -h 使用习惯单位显示容量,如KB,MB或GB ...

  3. SpringCloud学习之—Eureka集群搭建

    Eureka集群的搭建 上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个"微服务",单个应用使用空间有限,因 ...

  4. 安装NodeJs和NPM到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.2 LTS 软件版本:node-v10.16.3.npm-6.9.0 硬件要求:无 安装过程 1.安装NPM和NodeJs root@localhost: ...

  5. JS中let、var、const的区别

    先看let和var: 1. console.log(a); // undefined var a = 3; console.log(a); // Uncaught ReferenceError: Ca ...

  6. oracle快速创建用户、imp/exp导入导出dmp文件

    1.首先我们可以用管理员用户以sysdba的身份登录oracle sqlplus username/password as sysdba 2.然后我就可以来创建用户了. create user use ...

  7. xshell/secureCRT连接Linux及其常用命令

    一.xshell:在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的 下载安装后连接步骤: 二.secureCRT:在Windows下登录UNIX或Linux服务 ...

  8. 硬件知识整理part3--电阻在单片机系统中的应用

    邦有道,如矢:邦无道,如矢.  --孔子 电阻在电路中主要功能是限流和分压等等.在单片机系统中自然也是. 电阻作为限流应该是最常用的应用之一,对于单片机外围设计来说,电阻的应用非常重要,在很多时候,我 ...

  9. python生日贺卡制作以及细节问题的解决最后把python项目发布为exe可执行程序过程

    自己今天第一次做一个python生日贺卡: 效果图 参考之前有位大佬的作品,自己稍微的改造了一下下  首先:上程序 Birthday.py """ ----------- ...

  10. css3神奇的背景控制属性+使用颜色过渡实现漂亮的渐变效果

    css3背景图像相关 兼容性:IE9+ background-clip  背景图片绘制区域 background-clip:border-box; 内容区 <!DOCTYPE html> ...