文档章节

consul部署多台Docker集群

o
 osc_a22drz29
发布于 2019/03/26 21:06
字数 817
阅读 3
收藏 0

精选30+云产品,助力企业轻松上云!>>>

#Consul

  1. 最近在学习Ocelot,发现里面集成Consul,所有部署一下多机版集群,后来发现网上都是在一台虚拟机中的Docker部署,而且大同小异,没有真正解释清楚。 #前提准备
  2. 4台Centos虚拟机,本人安装VM虚拟机,用复制镜像快速搭建环境。(需要脚本的话联系我)
  3. 第一台安装好后,把Docker安装好,设置docker开机启动,关掉防火墙,设置静态IP等。
  4. 然后用copy虚拟机,修改ip地址后,全部启动

    这些操作可自行百度 #Consul

目前都是单数据中心,多数据中心后面更新,此篇仅供入门参考,如果有不对的地方欢迎指正

  1. Consul分client和server模式
  • client 负责注册服务,转发请求,没有持久化的功能 配置文件启动 ,会默认遍历所有/config/file 下的*.json文件
  • server 也可以注册服务,但是推荐client,能持久化数据,存放在 /config/data下 #在客户端模式下运行Consul Agent
    1. --net=host:docker内部对于虚拟机的来说也是localhost

    如果主机上的其他容器也使用--net=host,这将是一个很好的配置,它还会将代理暴露给直接在容器外部的主机上运行的进程

  1. -bind:这是给其他consul server来加入集群的ip
  2. -join:加入集群
  3. -client:使用此配置,Consul的客户端接口将绑定到网桥IP,并可供该网络上的其他容器使用,但不能在主机网络上使用。

    Consul还将接受-client=0.0.0.0绑定到所有接口的选项。

  4. -bootstrap-expect 设置服务数量,当达到设定数量启动集群。-bind的这台机器成为leader
  5. -ui管理界面
  6. -h:设置node的名称,集群的服务器不能取同名的node名称
  7. CONSUL_BIND_INTERFACE :ifconfig查看,好像虚拟机的这个名称不一样,我的是ens33,还有叫eth0的。 #需要用到的命令
  8. Docker中Consul部署
  • docker inspect -f '{{.NetworkSettings.IPAddress}}' consul1查看容器内Consul1的ip
  • docker exec -t consul名称 consul members 查看集群成员
  • ifconfig 查看ip配置
  • /sbin/ifconfig ens33 | sed -n 's/.*inet \(addr:\)\?\([0-9.]\{7,15\}\) .*/\2/p'
  • docker run -d --name consul1 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -bind=192.168.110.100 -ui -bootstrap-expect=3  leader 服务
  • docker run -d --name consul2 -h=node1 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -join=192.168.110.100 -ui  follower
  • docker run -d --name consul4 -h=node4--net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=false -client=0.0.0.0 -join=192.168.110.100 -ui client #启动 ##现有四台虚拟机,ip地址分别是:
  1. 192.168.110.100
  2. 192.168.110.101
  3. 192.168.110.102
  4. 192.168.110.103 在第一台服务器中运行server作为leader docker run -d --name consul1 -h=node1 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -bind=192.168.110.100 -ui -bootstrap-expect=3 接下来三台台加入集群 docker run -d --name consul2 -h=node2 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -join=192.168.110.100 -ui docker run -d --name consul3 -h=node3 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -join=192.168.110.100 -ui docker run -d -v /consulconfig:/config/file --name consul4 -h=node4 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -config-dir=/config/file -server=false -client=0.0.0.0 -join=192.168.110.100 -ui

如果需要挂载数据文件,请指定-data-dir

#查看状态

  • docker exec -t consul1 consul operator raft list-peers 查看投票状态
  • docker exec -t consul名称 consul members 查看集群成员
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
微服务(入门一):netcore安装部署consul(windows)

环境准备 vs开发环境:vs2017 consul版本: 1.4.4 netcore版本:2.1 安裝Consul 1.从官网下载consul到本地,选择系统对应的版本进行下载到本地,下载地址:https://www.consul.io/downloads...

osc_3xczhhq6
2019/04/22
9
0
微服务(入门一):netcore安装部署consul(windows)

环境准备 vs开发环境:vs2017 consul版本: 1.4.4 netcore版本:2.1 安裝Consul 1.从官网下载consul到本地,选择系统对应的版本进行下载到本地,下载地址:https://www.consul.io/downloads...

zyz1
2019/04/22
0
0
Docker部署Consul集群

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

osc_wa6zijqd
04/16
5
0
实战中的asp.net core结合Consul集群&Docker实现服务治理

一、前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面直接输入consul agent .... 来搭建启动consul集群,一旦把...

dotNET跨平台
2018/09/12
0
0
实战中的asp.net core结合Consul集群&Docker实现服务治理

0、目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一、前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面...

osc_f9olhm1n
2018/09/09
2
0

没有更多内容

加载失败,请刷新页面

加载更多

等到所有jQuery Ajax请求都完成了吗? - Wait until all jQuery Ajax requests are done?

问题: How do I make a function wait until all jQuery Ajax requests are done inside another function? 我如何让一个函数等到所有jQuery Ajax请求都在另一个函数中完成之后? In short...

富含淀粉
13分钟前
0
0
OSChina 周日乱弹 —— 那么长的绳子,你这是放风筝呢

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @ 巴拉迪维:黑豹乐队的单曲《无地自容》 耳畔突然响起旋律,是那首老歌。中国摇滚有了《一无所有》不再一无所有;中国摇滚有了《无地自容》不...

小小编辑
今天
65
1
《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多 给岁月以文明,而不是给文明以岁月 前言 王潇:格局决定了一个人的梦想,梦想反过来决定行为。 那格局是什么呢? 格局是你能够看见的深度、广度和密度。 王潇认...

敖丙
2019/12/11
11
0
我可以在Android版式中加下划线吗? - Can I underline text in an Android layout?

问题: 如何在Android布局xml文件中定义带下划线的文本? 解决方案: 参考一: https://stackoom.com/question/A31z/我可以在Android版式中加下划线吗 参考二: https://oldbug.net/q/A31z/...

法国红酒甜
今天
26
0
干掉ELK | 使用Prometheus+Grafana搭建监控平台

什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 Prometheus的特点 · 多维度...

木九天
今天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部