Windows10 上Docker 安装运行Consul
背景简介
Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。 这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格。 Consul需要数据平面并支持代理和本机集成模型。 Consul附带一个简单的内置代理,因此一切都可以开箱即用,但也支持第三方代理集成,如Envoy。

Consul的主要特点是:
服务发现:Consul的客户端可以注册服务,例如api或mysql,其他客户端可以使用Consul来发现给定服务的提供者。 使用DNS或HTTP,应用程序可以轻松找到它们所依赖的服务。
运行状况检查:Consul客户端可以提供任意数量的运行状况检查,这些检查与给定服务(“是Web服务器返回200 OK”)或本地节点(“内存利用率低于90%”)相关联。运营商可以使用此信息来监控群集运行状况,服务发现组件使用此信息将流量路由远离不健康的主机。
KV存储:应用程序可以将Consul的分层键/值存储用于任何用途,包括动态配置,功能标记,协调,领导者选举等。简单的HTTP API使其易于使用。
安全服务通信:Consul可以为服务生成和分发TLS证书,以建立相互的TLS连接。可以使用意图来定义允许哪些服务进行通信。可以使用可以实时更改的意图轻松管理服务分段,而不是使用复杂的网络拓扑和静态防火墙规则。
多数据中心:Consul支持多个数据中心。这意味着Consul的用户不必担心构建额外的抽象层以扩展到多个区域。
Consul旨在对DevOps社区和应用程序开发人员友好,使其成为现代,有弹性的基础架构的理想选择。
基于Docker On WSL2安装Consul
docker run --publish 8600:8600 --publish 8500:8500 --publish 8300:8300 --publish 8301:8301 --publish 8302:8302 --name consul-01 --restart always \
--volume /home/username/consul/data:/consul/data \
--volume /home/username/consul/config:/consul/config \
consul:latest \
agent -server \
-bootstrap-expect=1 \
-ui \
-bind=0.0.0.0 \
-client=0.0.0.0

其中,端口示意:
8500端口,用于Consul的HTTP接口及Web UI界面。8600端口,用于Consul已注册服务的DNS服务。8300端口,用于同一数据中心内Consul Server的RPC通信。8301端口,用于同一数据中心内Consul Server的gossip serf lan通信。8302端口,用于不同数据中心内Consul Server的gossip serf wan通信。
其中,参数示意:
–net=hostdocker参数, 使得docker容器越过了net namespace的隔离,免去手动指定端口映射的步骤-serverconsul支持以server或client的模式运行, server是服务发现模块的核心, client主要用于转发请求-advertise将本机私有IP传递到consul-retry-join指定要加入的consul节点地址,失败后会重试, 可多次指定不同的地址-client指定consul绑定在哪个client地址上,这个地址可提供HTTP、DNS、RPC等服务,默认是>127.0.0.1-bind绑定服务器的ip地址;该地址用来在集群内部的通讯,集群内的所有节点到地址必须是可达的,>默认是0.0.0.0allow_stale设置为true则表明可从consul集群的任一server节点获取dns信息, false则表明每次请求都会>经过consul的server leader-bootstrap-expect数据中心中预期的服务器数。指定后,Consul将等待指定数量的服务器可用,然后>启动群集。允许自动选举leader,但不能与传统-bootstrap标志一起使用, 需要在server模式下运行。-data-dir数据存放的位置,用于持久化保存集群状态-node群集中此节点的名称,这在群集中必须是唯一的,默认情况下是节点的主机名。-config-dir指定配置文件,当这个目录下有 .json 结尾的文件就会被加载,详细可参考https://www.consul.io/docs/agent/options.html#configuration_files-enable-script-checks检查服务是否处于活动状态,类似开启心跳-datacenter数据中心名称-ui开启ui界面-join指定ip, 加入到已有的集群中
通过http://192.168.1.4:8500/可以查看Web管理后台。

查看已存在节点的IP
docker inspect --format='{{.NetworkSettings.IPAddress}}' consul-01

新建第二个节点,加入主节点
docker run --publish 8501:8500 --name consul-02 --restart always \
--volume /home/username/consul-02/data:/consul/data \
--volume /home/username/consul-02/config:/consul/config \
consul:latest \
agent -server \
-ui \
-bind=0.0.0.0 \
-client=0.0.0.0 \
-join 172.17.0.7
新建第三个节点,加入主节点
docker run --publish 8502:8500 --name consul-03 --restart always \
--volume /home/username/consul-03/data:/consul/data \
--volume /home/username/consul-03/config:/consul/config \
consul:latest \
agent -server \
-ui \
-bind=0.0.0.0 \
-client=0.0.0.0 \
-join 172.17.0.7

查看Consul集群信息
docker exec -it consul-01 consul members

资源
Windows10 上Docker 安装运行Consul的更多相关文章
- Windows10 上Docker 安装运行Gitlab
准备条件 安装好Docker For Windows客户端. 配置好Docker 阿里云加速镜像地址. 检查Docker版本,大于等于v19. 拉取Gitlab镜像 docker pull gitla ...
- Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...
- 在Linux上rpm安装运行Redis 3.0.4
http://www.rpmfind.net搜索redis,找到redis3.0.4的rpm源选做 wget ftp://fr2.rpmfind.net/linux/remi/enterprise/6 ...
- centos7上docker安装和使用教程
Docker 是一个创建和管理 Linux 容器的开源工具.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上 ...
- Tensorflow-gpu在windows10上的安装(anaconda)
文档来源转载: http://blog.csdn.net/u010099080/article/details/53418159 http://blog.nitishmutha.com/tensorf ...
- linux上Docker安装gogs私服亲测(详解)
一.前言 有网友问我为什么要使用私服,可能大部分人都不是太懂,网上那么多存储仓库而且好用方便,但是你想过没有如果企业中的项目,放在人家的仓库上这个安全性不是太好,所以说一般企业都会有自己的私服.本章教 ...
- docker 安装 运行 卸载
一.卸载docker 安装时使用什么工具安装的docker就用什么工具卸载docker: 1.yum卸载docker 查看已安装的docker yum list installed | grep do ...
- MySQL-8.0.11 在 Windows10 上的安装
下载 MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233. 进入页面后可以不登录,点击底部“No ...
- docker探索-docker安装运行tomcat(六)
前言 本地已经搭建好了,tomcat容器,本来想自己写一篇,在开源中国一篇不错的教程,就转载过来了 本文转自:https://my.oschina.net/sunchp/blog/61652 ...
随机推荐
- Nacos服务发现
基础配置初始化 NacosDiscoveryClientConfiguration NacosDiscoveryProperties 初始化Nacos基础配置信息的bean,主要指yaml中配置Nac ...
- [Java] 数据分析 -- NoSQL数据库
MongoDB概念:与关系型数据库对应 database(数据库):数据库 collection(集合):表 document(文档):行 field(域):列/字段 注意事项 文档是一组键值(key ...
- [bug] org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2
原因 SpringBoot启动加载yml配置文件出现编码格式错误 参考 https://www.pianshen.com/article/2431144034/
- Python实现TCP通讯
Environment Client:Windows Server:KaLi Linux(VM_virtul) Network:Same LAN Client #!/usr/bin/python3 # ...
- 7.12-7.19 id、w、who、last、lastb、lastlog
7.12-7.19 id.w.who.last.lastb.lastlog 目录 7.12 id:显示用户与用户组的信息 7.13 w:显示已登录用户信息 7.14 who:显示已登录用户信息 显示最 ...
- 1.5 RPM红帽软件包1.6 Yum软件仓库
1.5 RPM红帽软件包 在RPM(红帽软件包管理器)公布之前,要想在Linux系统中安装软件只能采取源码包的方式安装.早期在Linux系统中安装程序是一件非常困难.耗费耐心的事情,而且大多数的服务程 ...
- 016.Python闭包函数以及locals和globals
一 闭包函数 内函数使用了外函数的局部变量,并且外函数把内函数返回出来的过程叫做闭包,这个内函数叫做闭包函数 1.1 闭包函数语法 def outer(): a = 5 def inner(): pr ...
- 使用Apache Pulsar + Hudi构建Lakehouse方案了解下?
1. 动机 Lakehouse最早由Databricks公司提出,其可作为低成本.直接访问云存储并提供传统DBMS管系统性能和ACID事务.版本.审计.索引.缓存.查询优化的数据管理系统,Lakeho ...
- CSS定位特性
CSS属性书写顺序 布局定位属性:display / position / float / clear / visibility / overflow 自身属性:width / height / ma ...
- java IO教程《三》
缓冲区流讲解(Buffered) 什么是缓冲区? 缓冲流,也叫高效流,是对4个基本的File流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,Buffe ...