Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >docker大件Consul集群

docker大件Consul集群

作者头像
Ant丶
发布于 2023-08-16 00:22:41
发布于 2023-08-16 00:22:41
32300
代码可运行
举报
文章被收录于专栏:cayzlhcayzlh
运行总次数:0
代码可运行

docker大件Consul集群

由于开发需要,需要在本地运行一个Consul环境,由于电脑上已经有Docker环境了,于是就直接在Docker里面搭一套Consul集群。 但是在使用过城中遇到一点小坑。

Docker搭建Consul集群

集群要求要有3Server,将容器8500端口映射到主机8900端口,同时开启管理界面

搭建集群

1. 启动第1个Server节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name=consul1 -p 8500:8500 -e CONSUL_BIND_INTERFACE=eth0 consul:1.6.2 agent --server=true --bootstrap-expect=3 --client=0.0.0.0 -ui

2. 获取consul1的ip地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' do1_consul1)";

3. 启动第2个Server节点,并加入集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul:1.6.2 agent --server=true --client=0.0.0.0 --join $JOIN_IP

4. 启动第3个Server节点,并加入集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul:1.6.2 agent --server=true --client=0.0.0.0 --join $JOIN_IP

5. 启动第4个Client节点,并加入集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name=consul4 -e CONSUL_BIND_INTERFACE=eth0 consul:1.6.2 agent --server=false --client=0.0.0.0 --join $JOIN_IP

浏览器访问 http://localhost:8500验证是否部署成功。

导入kv

1. 将kv.json复制到容器内

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker cp ~/Desktop/consul_kv.json consul1:/tmp

2. 导入kv.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker exec consul1 consul kv import @/tmp/consul_kv.json

IDEA跑服务注册到Consul

遇到的坑

consul集群跑起来之后,于是在IDEASpringCloud项目注册到部署好的Consul服务,当服务注册好之后,检查其健康状态,发现服务一直提示All node checks passing报了个小红叉❌。

解决

通过各种尝试都发解决之后,发现是因为在容器内部调用容器外(宿主机)的相应服务的时候网络不通,导致健康检查一直处于失败的状态,于是,修改SpringCloud工程的配置文件,新增配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spring.cloud.consul.discovery.preferIpAddress=true
spring.cloud.consul.discovery.ipAddress=docker.for.mac.host.internal

重新启动服务,各项检查都正常了。

  • 以上操作环境是macOS,未在别的环境重现和解决这个问题。
  • 容器内可以通过docker.for.mac.host.internal访问宿主机网络和端口。

文章链接

https://www.cayzlh.com/post/20230127/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker - 容器部署 Consul 集群
本文主要介绍怎么使用 Docker 在 Linux 环境部署 Consul 集群,如果你对 Docker 不了解的同学,请先学习一下 Docker。推荐一本学习 Docker 在线书籍 :【Docker入门到实践】 。
心莱科技雪雁
2019/04/22
3K0
Docker - 容器部署 Consul 集群
基于Docker的Consul服务发现集群搭建
在去年的.NET Core微服务系列文章中,初步学习了一下Consul服务发现,总结了两篇文章。本次基于Docker部署的方式,以一个Demo示例来搭建一个Consul的示例集群,最后给出一个HA的架构示范,也会更加贴近于实际应用环境。
心莱科技雪雁
2019/07/19
9180
基于Docker的Consul服务发现集群搭建
基于Docker的Consul服务发现集群搭建
  此示例会由一个API Gateway, 一个Consul Client以及三个Consul Server组成,有关Consul的Client和Server这两种模式的Agent的背景知识,请移步我之前的文章加以了解:《.NET Core微服务之基于Consul实现服务治理》。其中,Consul的Client和Server节点共同构成一个Data Center,而API Gateway则从Consul中获取到服务的IP和端口号,并返回给服务消费者。这里的API Gateway是基于Ocelot来实现的,它不是这里的重点,也就不过多说明了,不了解的朋友请移步我的另一篇:《.NET Core微服务之基于Ocelot实现API网关服务》。
Edison Zhou
2019/06/13
5400
三分钟Docker-镜像、容器实战篇
本示例使用前几天分享的项目把AAStore.ProductCatalog.Api,选中项目右键->添加->Docker支持,就会看到生产的Dockerfile文件
李明成
2020/07/28
8760
三分钟Docker-镜像、容器实战篇
使用Consul做服务发现的若干姿势
作者:波斯码 来源:http://blog.bossma.cn/consul/consul-service-register-and-discovery-style/?hmsr=toutiao.io&
程序猿DD
2018/12/06
4.7K0
docker(consul 和Jenkins)
根据镜像OFFICIAL标签判断,位列第一、名字为jenkins的是 Jenkins 官方提供的镜像。我们是不是应该使用这个官方镜像呢?
崔笑颜
2020/11/23
7910
基于Docker的Consul集群实现服务发现
其实简单说,服务发现就是解耦服务与IP地址之间的硬绑定关系, 以典型的集群为例,对于集群来说,是有多个节点的,这些节点对应多个IP(或者同一个IP的不同端口号),集群中不同节点责任是不一样的。 比如说一个数据集群中,可以分为读节点或者写节点,写节点和读节点都是相对的,不是硬绑定的,某一个逻辑节点,随着故障转移及恢复,是可以变换身份的(写变读,读变写;主降从,从升主等等) 集群对外提供服务的时候,对于外界来说,集群中节点身份变换的时候需要对外透明,外界无需因为集群节点的身份变换而更改配置,这就需要一个解耦合的服务。
星哥玩云
2022/07/29
4920
基于Docker的Consul集群实现服务发现
搭建简易的docker集群
今天又抽时间研究了一下如何搭建docker集群,终于找到配合consul、docker-machine、swarm搭建一个简易docker集群的办法,在这里记录一下。 创建一个consul数据库 首先需要创建一个用于swarm集群节点服务发现、健康检测的consul数据库。 #这里`https://xxxx.mirror.aliyuncs.com`参见上一篇文件里所提及的阿里云registry加速地址 docker-machine create -d virtualbox --engine-registry
jeremyxu
2018/05/10
1.9K0
服务发现之consul的介绍、部署和使用
微服务的框架体系中,服务发现是不能不提的一个模块。我相信了解或者熟悉微服务的童鞋应该都知道它的重要性。这里我只是简单的提一下,毕竟这不是我们的重点。我们看下面的一幅图片:
sunsky
2020/08/20
1.8K0
运行docker容器遇到的坑
今天工作中,需要在本机启动consul、zipkin两个容器,参考docker和zipkin两个镜像的说明,很自然地敲出了以下命令:
jeremyxu
2019/03/19
1.6K0
【实践】Docker环境部署Prometheus+Grafana监控系统
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。
辉哥
2021/03/30
2.1K0
【实践】Docker环境部署Prometheus+Grafana监控系统
Spring Cloud(二)Consul 服务治理实现
Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性。 Consul 简介 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式” ,内置了服务注册与发现框 架、具有以下性质: 分布一致性协议实现、 健康检查、 Key/Value存储、 多数据中心方案, 不再需要依赖其他工具(比如ZooKeeper等)。 使用起来
程序员鹏磊
2018/02/09
1.5K0
Spring Cloud(二)Consul 服务治理实现
.netcore consul实现服务注册与发现-集群部署
   Consul Agent有两种运行模式:Server和Client。这里的Server和Client只是Consul集群层面的区分,与搭建在Cluster之上的应用服务无关, 以Server模式运行的Consul Agent节点用于维护Consul集群的状态,官方建议每个Consul Cluster至少有3个或以上的运行在Server Mode的Agent,Client节点不限。
hailang2zh
2019/08/29
1.1K0
.netcore consul实现服务注册与发现-集群部署
实现动态服务负载均衡(docker+consul+consul_template+nginx)
我这里直接使用swoole简单模拟搭建一个直播的HTTP服务,前提是你的php安装了swoole扩展(server.php)
友儿
2022/09/13
3370
基于consul的Docker-overlay跨多宿主机容器网络
可以启动一个server和多个agent(此处是一个),然后让agent,join到consul集群中
字母哥博客
2020/09/23
1.9K1
你必须知道的Docker数据卷(Volume)
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。
Edison Zhou
2019/08/12
2.2K1
Web基础配置篇(十五): Consul单机、集群的安装使用及作为配置中心使用
Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。
品茗IT
2020/05/28
2.3K0
spring cloud: 使用consul来替换eureka
eureka官方已经正式宣布:自2.0起不再维护该项目,并在github 项目wiki上放出了一段吓唬人的话:
菩提树下的杨过
2018/08/01
1.5K0
spring cloud: 使用consul来替换eureka
【Docker】Docker学习记录: Shipyard+Swarm+Consul+Service Discover 搭建教程
网上乱七八糟的资料实在是太多了, 乱, 特别乱, 而看书呢, 我读了2本书, 一本叫做<<第一本 Docker 书>>, 另一本叫做<< Docker进阶与实战>> 在 服务发现这块讲的又不清不楚的, 坑死个人. 今天特意记录下, 并整理下来,以防自己哪天又忘了, 也给同在研究Docker 的朋友们一个安装教程. 我单位测试机一共四台, 各位可以起4个虚拟机对应, 假定分别是141,142,143,144. 都是 CentOS 6.x 系统. Step1. 升级 CentOS 内核到3.10版本以上 首先升
Rainbond开源
2018/05/31
8050
安装Consul集群
TIPS •本文基于Consul 1.5.3,理论适用于Consul 1.6及更低版本。•安装单机版Consul详见:《安装单机版Consul》
用户1516716
2019/12/23
1.7K0
推荐阅读
相关推荐
Docker - 容器部署 Consul 集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验