Docker容器---docker-Consul部署

news2025/1/11 19:39:53

一、Docker-consul简介

1、概述

consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。
服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。 每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。
安装consul是用于服务注册,也就是容器本身的一些信息注册到consul里面,其他程序可以通过consul获取注册的相关服务信息,这就是服务注册与发现。

2、Consul两种模式

client模式下,所有注册到当前节点的服务会被转发到server节点,本身是不持久化这些信息。
server模式下,功能和client模式相似,唯一不同的是,它会把所有的信息持久化到本地,这样遇到故障,信息是可以被保留的。
server-leader是所有server节点的老大,它和其它server节点不同的是,它需要负责同步注册的信息给其它的server节点,同时也要负责各个节点的健康监测。

二、Consul特性

1、特性

  • 支持健康检查、允许存储键值对

  • 基于Golong语言,可移植性强

  • 支持ACL访问控制

2、应用场景

Consul的应用场景包括服务发现、服务隔离、服务配置:

服务发现场景中consul作为注册中心,服务地址被注册到consul中以后,可以使用consul提供的dns、http接口查询,consul支持health check。
服务隔离场景中consul支持以服务为单位设置访问策略,能同时支持经典的平台和新兴的平台,支持tls证书分发,service-to-service加密。
服务配置场景中consul提供key-value数据存储功能,并且能将变动迅速地通知出去,借助Consul可以实现配置共享,需要读取配置的服务可以从Consul中读取到准确的配置信息。
Consul可以帮助系统管理者更清晰的了解复杂系统内部的系统架构,运维人员可以将Consul看成一种监控软件,也可以看成一种资产(资源)管理系统。

三、部署Consul集群(server端)

1、建立Consul服务

[root@localhost ~]#cd /opt/
[root@localhost opt]#mkdir consul
[root@localhost opt]#cd /opt/consul/
[root@localhost consul]#rz -E
rz waiting to receive.
[root@localhost consul]#ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]#unzip consul_0.9.2_linux_amd64.zip 
Archive:  consul_0.9.2_linux_amd64.zip
  inflating: consul                  
[root@localhost consul]#mv  consul /usr/local/bin/

[root@localhost consul]#consul --version
Consul v0.9.2
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

2、设置代理,在后台启动consul服务端

[root@localhost consul]#consul agent \
> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=192.168.10.100 \
> -client=0.0.0.0 \
> -node=consul-server01 &> /var/log/consul.log &
[1] 17895
[root@localhost consul]#netstat  -natp | grep consul
tcp        0      0 192.168.10.100:8300     0.0.0.0:*               LISTEN      17895/consul        
tcp        0      0 192.168.10.100:8301     0.0.0.0:*               LISTEN      17895/consul        
tcp        0      0 192.168.10.100:8302     0.0.0.0:*               LISTEN      17895/consul        
tcp6       0      0 :::8500                 :::*                    LISTEN      17895/consul        
tcp6       0      0 :::8600                 :::*                    LISTEN      17895/consul    

3、查看集群信息

[root@localhost consul]#consul members  #查看members状态
Node             Address              Status  Type    Build  Protocol  DC
consul-server01  192.168.10.100:8301  alive   server  0.9.2  2         dc1
[root@localhost consul]#consul operator raft list-peers  #查看集群状态
Node             ID                   Address              State   Voter  RaftProtocol
consul-server01  192.168.10.100:8300  192.168.10.100:8300  leader  true   2
[root@localhost consul]#consul info | grep leader   #查看详细信息
	leader = true
	leader_addr = 192.168.10.100:8300

四、Consul部署(Client端)

1、安装Gliderlabs/Registrator Gliderlabs/Registrator

容器服务自动加入nginx集群

[root@localhost ~]#docker run -d \
> --name=registrator \
> --net=host \
> -v /var/run/docker.sock:/tmp/docker.sock \
> --restart=always \
> gliderlabs/registrator:latest \
> --ip=192.168.10.101 \
> consul://192.168.10.100:8500


[root@localhost ~]#docker images


[root@localhost ~]#docker ps -a

2、测试服务发现功能是否正常

[root@localhost ~]#systemctl restart docker
[root@localhost ~]#docker run -itd -p:83:80 --name test-01 -h test01 nginx


[root@localhost ~]#docker run -itd -p:84:80 --name test-02 -h test02 nginx


[root@localhost ~]#docker run -itd -p:88:80 --name test-03 -h test03 httpd


[root@localhost ~]#docker run -itd -p:89:80 --name test-04 -h test04 httpd

[root@localhost ~]#docker ps -a

3、验证 http 和 nginx 服务是否注册到 consul

浏览器中,输入 http://192.168.10.100:8500,在 Web 页面中“单击 NODES”,然后单击“consurl-server01”,会出现 5 个服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1635844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、交换网络基础

目录 1.交换机的转发行为 2.数据帧的类型 3.ARP地址解析步骤 Hub:物理层设备 交换机:数据链路层设备 1.交换机的转发行为 泛洪(Flooding)(有可能是单播帧(未知单播帧),也有可能是…

一文解决ArcGIS生成点和管段 含案例讲解

背景 在工作中,我们经常遇到要将坐标数据导入 GIS,生成点位,若是地理坐标系(经纬度),那么直接用 arcgis或者QGIS 导入数据就行了,可实际中总会遇到各种问题: 坐标数据集为大地 200…

SQLite数据库添加密码

背景: 最近发现软件在运行过程中,数据库文件暴露在外面,而且直接拷贝后就能打开,发现这样来说数据并不是很安全我使用的开发环境是VS QT,使用navicat创建了一个数据库准备 百度搜索了一些资料和博客,发现…

kube-prometheus部署到 k8s 集群

文章目录 **修改镜像地址****访问配置****修改 Prometheus 的 service****修改 Grafana 的 service****修改 Alertmanager 的 service****安装****Prometheus验证****Alertmanager验证****Grafana验证****卸载****Grafana显示时间问题** 或者配置ingress添加ingress访问grafana…

《深入解析WIndows操作系统》第9章读书笔记

1、闪存类型:常见的闪存类型有NOR和NAND。NOR闪存在操作上最接近RAM,它的每个字节都可以被独立地寻址,而NAND闪存则被组织成以块为单位,就像磁盘一样。NOR类型的闪存用来设计保存计算机主板上的BIOS,而NAND类型的闪存被…

Go语言的包管理工具go mod与之前的GOPATH有什么区别?

在深入探讨Go语言的包管理工具go mod与之前的GOPATH之间的区别之前,我们首先需要理解这两个概念各自的作用和背景。 GOPATH时代 在Go语言早期版本中,GOPATH是一个非常重要的环境变量。它告诉Go工具链在哪里查找你的Go代码、第三方库以及编译后的二进制…

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周,美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务,即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月(27…

JWT是什么?如何使用?

JWT是什么?如何使用? 前言什么是JWT?概念工作方式JWT的组成HeaderPayloadSignatrue 实战引入依赖自定义注解定义实体类定义一个JWT工具类业务校验并生成token定义拦截器配置拦截器定义接口方法并添加注解开始验证 使用场景注意事项 JWT与传统…

【练习1】

1.字符串最后一个单词的长度 #include <iostream> #include<string> using namespace std;int main() {string a;int res,i,flag;flag1;i0;getline(cin,a);res0;while(flag1){if(a[i]! ){resres1;}else{res0;}if(ia.length()-1){flag-1;}i;}cout<<res<<…

服务器遭受攻击后的黑洞状态应对策略及防护机制解析

引言 在网络安全领域中&#xff0c;当服务器遭受大规模DDoS攻击或其他恶意流量冲击时&#xff0c;为了保护服务的稳定性和其他正常用户的使用体验&#xff0c;往往会采取一种紧急防护手段——将服务器置于黑洞状态。所谓黑洞状态&#xff0c;即网络服务商暂时屏蔽掉对服务器的…

与Apollo共创生态:让汽车更聪明,让出行更简单

目录 前言Apollo X 企业解决方案Studio X 企业协同开发工具链Apollo开放平台携手伙伴共创生态Apollo开发平台生态共创计划 前言 百度2013年开始布局自动驾驶&#xff0c;2017年推出全球首个自动驾驶开放平台Apollo。目前百度Apollo已经在自动驾驶、智能汽车、智能地图等领域拥有…

Agisoft Metashape 自定义底图

Agisoft Metashape 自定义底图 前言 Agisoft Metashape 从2.0.2 版本开始,Agisoft Metashape Professional 和 Agisoft Viewer 支持自定义底图,可用于模型和正射视图模式。本文以添加Esri World Image卫星底图图源为例,介绍Agisoft Metashape 自定义底图的方法。 添加自定…

STM32F103(Cubemx)驱动ST7789

源码来源&#xff1a; 中景园电子的标准库使用SPI驱动ST7789的TFT_LCD彩屏&#xff0c;将标准库修改为HAL库使用 Cubemx配置&#xff1a; 时钟配置 SPI配置&#xff1a; 引脚配置 源码修改 修改原有的SPI发送函数&#xff0c;并把原有的引脚初始化注释&#xff0c;不需要…

smac 路径优化器分析——距离成本和代价地图成本分析

参考 泰勒级数直观详解 前向差分&#xff0c;后向差分&#xff0c;中心差分 相关文章 smac 路径优化器分析——平滑度成本分析 smac 路径优化器分析——曲率成本分析 距离成本 距离成本函数 用优化后的点与原路径点的欧氏距离的平方作为成本。 下图中蓝色原点是原路径点…

73、栈-柱状图中最大的矩形

思路&#xff1a; 矩形面积&#xff1a;宽度*高度 高度如何确定呢&#xff1f;就是在宽度中最矮的元素。如何确定宽度&#xff0c;就是要确定左右边界。 当我们在处理直方图最大矩形面积问题时&#xff0c;遇到一个比栈顶柱子矮的新柱子时开始计算面积的原因关键在于如何确定…

大数据组件之Storm详解

Storm 是一个免费并开源的分布式实时计算系统&#xff0c;具有高容错性和可扩展性。它能够处理无边界的数据流&#xff0c;并提供了实时计算的功能。与传统的批处理系统相比&#xff0c;Apache Storm 更适合处理实时数据。 让我们深入了解一下 Storm&#xff1a; 1.Storm 简介…

【自研网关系列】过滤器链 -- 灰度发布过滤器

&#x1f308;Yu-Gateway&#xff1a;&#xff1a;基于 Netty 构建的自研 API 网关&#xff0c;采用 Java 原生实现&#xff0c;整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施&#xff0c;承载请求路由、安全控制、流量治理等…

图像预处理工具_CogImageFileTool

CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存。也可使用CoglmageFileTool工具将图片插入到.idb数据库里。 添加工具 参数介绍 文件名 写入模式 读取模式 删除

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板&#xff1a;13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去&#xff1a;点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…

Hotcoin Research|玩赚WEB3:Seraph零成本赚取技巧

在《Seraph》这款游戏里&#xff0c;要提升自己的游戏技能和体验&#xff0c;了解如何免费赚取游戏货币灵魂晶石并挑战游戏主线是非常重要的。你可以通过卖东西、参加虚空异界地图和混沌秘境来在游戏里赚更多的钱&#xff0c;并更享受游戏的乐趣。最酷的是&#xff0c;得到的灵…