Docker安装Consul集群
Docker 安装Consul集群
使用windows 环境,Docker desktop community 构建consul集群。
1、docker 容器网络
docker安装后,默认会创建三种网络类型,bridge、host和none,可通过如下命令查看:
sudo docker network ls
NETWORK ID NAME DRIVER SCOPE
32c1b52444f2 bridge bridge local
6a2d84a36162 host host local
cff3a04a41f6 none null local
- bridge:网络桥接:默认情况下启动、创建容器都是使用该模式,每次容器重启都会按顺序获取对应的ip地址,这就导致每次重启后容器的ip发生变化。
- none:无指定网络,启动时通过:
-network=none则docker不会分配局域网ip。 - host:主机网络:docker容器的网络会附属在主机上,两者互通。
2、创建固定ip的容器
- 创建自定义网络类型,并指定网段
docker network create --subnet=192.168.0.0/16 staticnet
--subnet=192.168.0.0/16子网网段
staticnet自定义网络类型
再次查看docker 网络类型:docker network ls 会多出来一个自定义的网络类型。
- 使用新的网络类型创建并启动容器
udo docker run -it --name userserver --net staticnet --ip 192.168.0.2 mysql:5.7
参数说明:--net 指定网络类型。--ip 指定容器ip(对应网络类型下的网段内)
创建单节点Consul
docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=cs1 --net staticnet --ip 192.168.0.2 consul agent -server -bootstrap -ui -node=Server01 -client='0.0.0.0'
参数说明:
-p <hostPort>:<containerPort>映射容器端口到主机端口
-v <hostDataDir>:<containerDataDir>卷文件映射
--net <networktype>指定网络类型这里使用自定以的网络类型
--ip <ipaddress>指定容器在网络类型下的ip地址
consul ...开始执行consul的命令
agent -server表示启动 Agent 进程以consul server模式
agen -client表示启动 Agent 进程以consul client模式
-bootatrap表示此节点时server-leader,通常多个server会采用Raft算法选举产生一个leader,剩下的server为follow
-ui启动web ui管理界面,默认端口:8500 须开放出来。
-node节点名称,集群中唯一
-client='0.0.0.0'将绑定客户端地址,0.0.0.0表示所有地址都能访问
-join加入某一集群中
上面命令会启动一个Consul节点,名称为:Server01,端口已经进行了映射,可通过主机地址:8500 访问web ui管理页面。
组装集群(3个server+2个client)
1、查看刚刚创建的leader节点的信息:
docker exec cs1 consul members
输出:
Node Address Status Type Build Protocol DC Segment
Server01 192.168.0.2:8301 alive server 1.6.1 2 dc1 <all>
可以看到第一个节点的地址。
2、创建第二个server并加入集群
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=cs2 --net staticnet --ip 192.168.0.3 consul agent -server -node=Server02 -join='192.168.0.2'
3、创建第三个server并加入集群
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=cs3 --net staticnet --ip 192.168.0.4 consul agent -server -node=Server03 -join='192.168.0.2'
server加入完成后,在web管理页面就可以看到新增加的节点,以及当前的leader节点。
4、创建client并加入集群
-- client01
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip05 --net staticnet --ip 192.168.0.5 consul agent -node client01 -join='192.168.0.2' -client='0.0.0.0'
--client02
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip06 --net staticnet --ip 192.168.0.6 consul agent -node client02 -join='192.168.0.2' -client='0.0.0.0'
-- client03
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip07 --net staticnet --ip 192.168.0.7 consul agent -node client03 -join='192.168.0.2' -client='0.0.0.0'
Docker安装Consul集群的更多相关文章
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- docker安装hadoop集群
docker安装hadoop集群?图啥呢?不图啥,就是图好玩.本篇博客主要是来教大家如何搭建一个docker的hadoop集群.不要问 为什么我要做这么无聊的事情,答案你也许知道,因为没有女票.... ...
- 基于docker安装pxc集群
基于docker安装pxc集群 一.PXC 集群的安装 PXC集群比较特殊,需要安装在 linux 或 Docker 之上.这里使用 Docker进行安装! Docker的镜像仓库中包含了 PXC数据 ...
- vagrant+docker搭建consul集群开发环境
HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...
- Docker学习-Docker搭建Consul集群
1.环境准备 Linux机器三台 网络互通配置可以参考 https://www.cnblogs.com/woxpp/p/11858257.html 192.168.50.21 192.168.50.2 ...
- 基于Docker的Consul集群实现服务发现
服务发现 其实简单说,服务发现就是解耦服务与IP地址之间的硬绑定关系,以典型的集群为例,对于集群来说,是有多个节点的,这些节点对应多个IP(或者同一个IP的不同端口号),集群中不同节点责任是不一样的. ...
- Docker部署Consul集群
服务介绍 Consul是一种分布式.高可用.支持水平扩展的服务注册与发现工具.包含的特性有:服务发现.健康检查.键值存储.多数据中心和服务管理页面等. 官方架构设计图: 图中包含两个Consul数据中 ...
- CentOS7安装Consul集群
1.准备4台服务器 linux1 192.168.56.101 linux2 192.168.56.102 linux3 192.168.56.103 linux4 192.168.56.104 2. ...
- 阿里云服务器 CentOS 7.5 64位 docker安装redis集群
网上有很多教程可以参考,但是遇到坑了...... 最后参考这个教程成功了.https://www.cnblogs.com/hbbbs/articles/10028771.html 安装docker 参 ...
随机推荐
- Linux的web服务的介绍
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在Internet上的一种网络服务,为浏览者在 ...
- mysql数据库之运行时其他报错
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法 这是我们开启了bin-log, ...
- Shiro RememberMe 1.2.4 反序列化漏洞详细复现
0x00 前言 今天上班的时候收到了一个复测的任务,打开一看,shiro反序列化漏洞,What?这是个什么东西,经百度查找后才知道,原来是Java的开发框架,好吧,还是没听说过..由于初测报告上的过程 ...
- Python 模拟伯努利试验和二项分布
1.模拟 27 次投掷硬币的伯努利试验 代码: from scipy import stats import numpy as np p = 0.5 # 生成冻结分布函数 bernoulliDist ...
- 2019牛客国庆day3-G &CF1238E
牛客G: 给定大小为N的数组a[],给定M组关系,让你重排a[],使得sum{M队关系的绝对值之差}最小.首先将a排序,然后依次把a填入数组. 假设i在二进制下有x个1,用dp[i]更新dp[i|(1 ...
- hbase表的高性能设计
第7章 HBase优化 7.1 高可用 在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷 ...
- classpath环境变量解惑
只有使用低于JDK1.5版本的JDK时,才需要设置classpath环境变量. 因为早期版本的JDK没有设计在当前路径下搜索Java类的功能,而且编译和运行java程序时还需要JDK的lib路径下的d ...
- 树莓派搭建基于flask的web服务器-通过移动端控制LED
1.概述 在局域网内,基于flask搭建web服务,从而可以使用移动客户端访问该web服务.由于是flask新手,所以本次实现的web服务功能较为简单,即控制LED灯的开/关及闪烁. 2.准备工作 2 ...
- matlab-画地形图
1.画三维图 之前画曲面的三维图,运用z=x2+y2 算出z和Z,如果是给出数据的地形则没办法用公式算,为此,引入插值自动造出地形的坐标. 拟合和插值的区别:插值是必须要过点,曲线可以不光滑:拟合则是 ...
- docker概述和安装及基本操作
一:概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用 ...