1、介绍

  本教程使用Compose、Machine、Swarm工具把WordPress部署在OpenStack上。

  本节采用Consul作为Swarm的Discovery Service模块,要利用Consul实现服务的注册与发现,需要建立Consul Cluster。在Consul方案中,每个提供服务的节点上都要部署和运行Consul的agent,所有运行Consul agent节点的集合会构成Consul Cluster。

2、创建虚拟机

  使用docker-machine create命令创建5个虚拟机,其中虚拟机1用作Swarm的Master,虚拟机2用作Consul的服务发现,虚拟机3~5用作Swarm的节点。

  创建lfkdockermachine1虚拟机

  #docker-machine create -d openstack --openstack-insecure --openstack-auth-url=Keystone_Auth_URL --openstack-username=UserName --openstack-password=PassWord --openstack-tenant-id=TenantID --openstack-tenant-name=TenantName --openstack-flavor-id=FlavorID --openstack-image-id=ImageID --openstack-region=az0.dcl --openstack-net-id=NetID --openstack-availability-zone=az1.dc1 --openstack-sec-groups=GroupsID --openstack-floatingip-pool=external_relay_network lfkdockermachine1

  Creating machine...

  更多参数详见:https://docs.docker.com/machine/drivers/openstack/#options

3、查看虚拟机

  #docker-machine ls

  NAME    ACTIVE     DRIVER    STATE    URL    SWARM

  lfkdockermachine1      openstack    running        tcp://100.64.0.31:2376

  lfkdockermachine2      openstack    running        tcp://100.64.0.32:2376

  lfkdockermachine3      openstack    running        tcp://100.64.0.33:2376

  lfkdockermachine4      openstack    running        tcp://100.64.0.34:2376

  lfkdockermachine5      openstack    running        tcp://100.64.0.35:2376

  通过OpenStack的nova list查看

  #nova list --all_te | grep  lfk | head -1

  | 65ad59c7-39df-4cdc-8957-eb2e396ac8d6 | lfkdockermachine1 | ACTIVE | -  | Running | docker-VM_network=192.168.10.91,100.64.0.31 |

4、搭建Swarm的Discovery Service模块

  在lfkdockermachine2上通过consul命令搭建Consul Server节点

  #consul agent -server -bootstrap-expect=1 -data-dir=data -bind=192.168.10.92 -client=192.168.10.92 &

  在lfkdockermachine3、lfkdockermachine4、lfkdockermachine5上搭建Consul Client节点

  #consul agent -data-dir=data -node=lfkdockermachine3 -join=192.168.10.92 -bind=192.168.10.93 -client=192.168.10.93 &

  此时在日志lfkdockermachine2上可看到Consul Client节点加入了集群

  consul:member 'lfkdockermachine3' joined, marking health alive

  将lfkdockermachine4和lfkdockermachine5也加入集群

  在Consul Server节点通过members命令列出整个集群的综合信息

  #consul members -rpc-addr=192.168.10.92:8400

  Node        Address    Status    Type    Build    Protocol

  lfkdockermachine2  192.168.10.92    alive       server            0.5.0             2

  lfkdockermachine3  192.168.10.93    alive       client              0.5.0             2

  lfkdockermachine4  192.168.10.94    alive       client              0.5.0             2

  lfkdockermachine5  192.168.10.95    alive       client              0.5.0             2

5、搭建Swarm集群

  在lfkdockermachine1上搭建Swarm Master,直接使用官方提供的Swarm可执行程序来创建Swarm Master

  #swarm manage consul://192.168.10.92:8500/swarm --strategy "random" -H tcp://0.0.0.0:2375 &

  [2] 3307

  INFO[0000] Listening for HTTP    addr=0.0.0.0:2375 proto=tcp

  使用swarm join将3~5加入swarm集群

  #swarm join consul://192.168.10.92:8500/swarm --addr=192.168.10.93:2375 &

  在Swarm Master上查看Swarm节点信息

  #swarm list consul://192.168.10.192:8500/swarm

  192.168.10.93:2375

  192.168.10.94:2375

  192.168.10.95:2375

5、利用Compose部署WordPress

  借鉴:http://www.cnblogs.com/XYJK1002/p/5386187.html

  部署系统

  # docker-compose up

  查看是否启动

  # docker -H tcp://192.168.10.92:2375 ps -a

  

  

Docker(十三):OpenStack部署Docker集群的更多相关文章

  1. 使用docker或者docker-compose部署Zookeeper集群

    之前有介绍过Zookeeper的安装部署(Zookeeper基础教程(二):Zookeeper安装),但是那里我是基于独立的虚拟机来实现部署的,这种部署方式适合线上集群部署.后来有几次想用一下Zook ...

  2. docker环境下solrcloud+zookeeper集群部署教程

    前言:两个月前的16年11月份完成的配置,使用的solr6.1和zookeeper3.4,刚刚写成blog,目前版本可能有小版本的变化. 本例完成结果为:在docker环境下部署solrcloud集群 ...

  3. Docker部署Consul集群

    服务介绍 Consul是一种分布式.高可用.支持水平扩展的服务注册与发现工具.包含的特性有:服务发现.健康检查.键值存储.多数据中心和服务管理页面等. 官方架构设计图: 图中包含两个Consul数据中 ...

  4. 使用docker部署hadoop集群

    最近要在公司里搭建一个hadoop测试集群,于是采用docker来快速部署hadoop集群. 0. 写在前面 网上也已经有很多教程了,但是其中都有不少坑,在此记录一下自己安装的过程. 目标:使用doc ...

  5. 使用docker-compose部署Kafka集群

    之前写过Kafka集群的部署,不过那是基于宿主机的,地址:Kafka基础教程(二):Kafka安装 和Zookeeper一样,有时想简单的连接Kafka用一下,那就需要开好几台虚拟机,如果Zookee ...

  6. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  7. Docker 容器部署 Consul 集群

    Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...

  8. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  9. Docker部署Elasticsearch集群

    http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...

  10. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

随机推荐

  1. 2964:日历问题-poj

    2964:日历问题 总时间限制:  1000ms 内存限制:  65536kB 描述 在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰 ...

  2. 【转】如何使用Git上传本地项目到github?(mac版)

    原文链接:http://www.cnblogs.com/lijiayi/p/pushtogithub.html 在此假设你已经在 github 上创建好了一个项目,像这样: 并且你已经完成了自己的项目 ...

  3. 显示mysql线程和kill线程的命令

    show processlist;//显示哪些线程正在运行. kill id //kill线程   通常在表被锁的时候用.   show processlist;显示哪些线程正在运行.您也可以使用my ...

  4. 运行时动态库:not found 及介绍-linux的-Wl,-rpath命令

    ---此文章同步自我的CSDN博客--- 一.运行时动态库:not found   今天在使用linux编写c/c++程序时,需要用到第三方的动态库文件.刚开始编译完后,运行提示找不到动态库文件.我就 ...

  5. eclipse工作空间的基本配置

    今天我们来学习一个小技巧,就是如何配置eclipse,对你没看错,就是配置eclipse,为什么要学这个呢?这个不是很简单吗?没错,是简单,但越是简单的东西有的时候人们总是会忽略一些什么,从未造成损失 ...

  6. “核弹级”Android漏洞Janus,黑客可以任意篡改App

    美国时间12月9日,Google披露了一个名为"Janus"安卓漏洞.该漏洞可以让攻击者绕过安卓签名机制,从而让攻击者对App进行篡改,安卓5.0到8.0等个版本系统均受影响. 顶 ...

  7. springboot整合rabbitmq

    概述 RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,或者简单地将作业队列以便让分布式服务器进行处理. 它现实了AMQP协议,并且遵循Mozilla P ...

  8. Python操作 Memcache、Redis、RabbitMQ

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  9. Codeforces 830C On the Bench

    题意:给你n个数,问有多少种排列方式使得任意两个相邻的数的乘积都不是完全平方数 我好弱,被组合和数论吊着打... 首先我们可以把每个数中固有的完全平方数给分离出来,那么答案其实就只与处理后的序列相关. ...

  10. 【NOI2015】程序自动分析

    https://www.luogu.org/problem/show?pid=1955 并查集+离散化. 先执行所有x=y问题,即合并x和y. 再依次执行所有x!=y问题,即查询x和y是否处于同一集合 ...