1. Consul简介

  Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,基于 Mozilla Public License 2.0 的协议进行开源。Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对。

  命令行非常好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品。

  一致性协议采用 Raft 算法,用来保证服务的高可用。使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制。

  官网:https://www.consul.io/

2. Windows安装

  • 下载安装包

      Download Consul
  • 解压
  • 配置环境变量

      将解压后consul.exe所在的目录添加到环境变量Path中(不包含consul.exe,例如:d:\consul)。
  • 运行CMD
#查看环境变量是否添加成功
consul #启动
consul agent -dev #浏览器访问
http://localhost:8500 #查看成员
consul members #查看成员及元数据
consul members -detailed #查看节点
curl localhost:8500/v1/catalog/nodes

  至此,Windows单机安装Consul已经完成。

3. Docker部署Consul集群

#拉取镜像(若指定具体版本,执行docker pull consul:1.6.2)
docker pull consul #查看镜像
docker images #运行
#agent : 表示启动 Agent 进程
#-server:表示启动 Consul Server 模式
#-client:表示启动 Consul Cilent 模式
#-bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志
#-ui:表示启动 Web UI 管理器,默认开放端口 8500,所以使用 Docker -p命令对外开放 8500 端口
#-node:节点的名称,集群中必须是唯一的
#-client:表示 Consul 将绑定客户端接口的地址,0.0.0.0 表示所有地址都可以访问
#-join:表示加入到某一个集群中去, 如:-json=192.168.1.100
docker run --name=consul-server-1 --privileged=true -p 8500:8500 -v /usr/local/consul/data:/consul/data -e CONSUL_BIND_INTERFACE=eth0 -d consul:1.6.2 agent -server -client=0.0.0.0 -bootstrap -ui -node=1 #若出现iptables: No chain/target/match by that name,是因为docker network没有权限对container进行网络配置,有两中解决办法
#方法一:关闭网关
systemctl stop firewalld
systemctl stop iptables
#方法二:重启docker
service docker restart
#查看容器信息
docker ps -a
#删除刚才创建的容器
docker rm -f [CONTAINER ID]
#重新执行
docker run --name=consul-server-1 --privileged=true -p 8500:8500 -v /usr/local/consul/data:/consul/data -e CONSUL_BIND_INTERFACE=eth0 -d consul:1.6.2 agent -server -client=0.0.0.0 -bootstrap -ui -node=1 #查看Consul容器运行状态,若为Up状态,则证明部署成功
docker ps -a #浏览器访问
http://[ip]:8500 #查看成员(记录Address,集群部署时需要)
docker exec consul-server-1 consul members #查看节点信息
curl http://[ip]:8500/v1/catalog/nodes
  • 集群部署

      Server 模式在集群中建议是三个以上,这样更好的避免因为 Server 宕机导致整个集群挂掉的风险。

      在上边单机部署上添加两个Server节点到Consul集群中。
#查看成员(记录Address)
docker exec consul-server-1 consul members #添加两个Server节点,名称为-node=2,-node=3
docker run --name=consul-server-2 -e CONSUL_BIND_INTERFACE=eth0 -d consul:1.6.2 agent -server -node=2 -join='172.17.0.3'
docker run --name=consul-server-3 -e CONSUL_BIND_INTERFACE=eth0 -d consul:1.6.2 agent -server -node=3 -join='172.17.0.3' #查看Consul三个容器运行状态,若为Up状态,则证明部署成功
docker ps -a #浏览器访问
http://[ip]:8500 #查看成员(记录Address,集群部署时需要)
docker exec consul-server-1 consul members #查看节点信息
curl http://[ip]:8500/v1/catalog/nodes

  至此,使用Docker部署Consul集群已经完成。

4. 剔除无效服务和节点

  • 剔除无效服务
curl -X PUT http://[ip]:8500/v1/agent/service/deregister/[service_id]
  • 剔除无效节点
curl -X PUT http://[ip]:8500/v1/agent/force-leave/[node_id]

Consul安装部署(Windows单机、Docker集群)的更多相关文章

  1. 最新二进制安装部署kubernetes1.15.6集群---超详细教程

    00.组件版本和配置策略 00-01.组件版本 Kubernetes 1.15.6 Docker docker-ce-18.06.1.ce-3.el7 Etcd v3.3.13 Flanneld v0 ...

  2. consul部署多台Docker集群

    Consul 最近在学习Ocelot,发现里面集成Consul,所有部署一下多机版集群,后来发现网上都是在一台虚拟机中的Docker部署,而且大同小异,没有真正解释清楚. 前提准备 4台Centos虚 ...

  3. 基于Containerd安装部署高可用Kubernetes集群

    转载自:https://blog.weiyigeek.top/2021/7-30-623.html 简述 Kubernetes(后续简称k8s)是 Google(2014年6月) 开源的一个容器编排引 ...

  4. ZooKeeper 的安装和配置---单机和集群

    如题本文介绍的是ZooKeeper 的安装和配置过程,此过程非常简单,关键是如何应用(将放在下节及相关节中介绍). 单机安装.配置: 安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个 ...

  5. zookeeper安装和配置(单机+伪集群+集群)

    #单机模式 解压到合适目录. 进入zookeeper目录下的conf子目录, 复制zoo_sample.cfg-->zoo.cfg(如果没有data和logs就新建):tickTime=2000 ...

  6. 在ubuntu上部署Kubernetes管理docker集群示例, vxlan,gre

    http://www.chenshake.com/openstack-folsom-guide-for-ubuntu-12-04/ http://www.cnblogs.com/sammyliu/p/ ...

  7. Spark Tachyon编译部署(含单机和集群模式安装)

    Tachyon编译部署 编译Tachyon 单机部署Tachyon 集群模式部署Tachyon 1.Tachyon编译部署 Tachyon目前的最新发布版为0.7.1,其官方网址为http://tac ...

  8. Spring Eureka 本地Docker集群部署

    故事背景 最近因为产线使用的服务与发现服务,使用的是Spring Cloud Eureka集群部署,为了以后调试产线的问题,想在本地搭建和产线一样的环境.产线的所有服务都是基于K8s和Docker部署 ...

  9. Docker集群部署SpringCloud应用

    整体架构 docker环境准备 # linux下的安装,自行百度 # windows docker toolbox下载地址 https://download.docker.com/win/stable ...

随机推荐

  1. phpstudy搭建网站只能访问首页,其他路由访问404

    今天博主遇到了一个很奇葩的问题,电脑下载了一个phpstudy搭建网站,框架用的是tp,但是除了输入域名能访问,其他页面都访问不了 经过博主的疯狂问大佬,以及百度,终于解决了这个问题 这次出现问题的原 ...

  2. OxyPlot组件的基本使用

    在制作上位机的时候,很多时候需要使用到监控绘图界面,使用来绘制曲线的组件有很多,GDI+.char.OxyPlot等等,这篇文章用来介绍OxyPlot组件的基本应用,在本文中主要是利用随心数生成函数结 ...

  3. Beyond Compare-这款检查图片工具真的绝了!

    无论是出去旅游,还是参加聚会,在朋友圈分享美美的图片,已经成为了很多都市人的日常.在分享图片前,大多数人都会选择使用滤镜.风格等功能对照片进行一定的美化.但有时候美化的程度比较轻微,连修图的人都无法判 ...

  4. 用MathType怎么把分数打出来

    分数是生活中最常见的数,作为大学生学习高数概率论更是离不开分数.分数是指整体的一部分,或更一般地,任何数量相等的部分.分数是一个整数a和一个正整数b的不等于整数的比. 当在日常用语中说话时,分数描述了 ...

  5. 带你了解Boom 3D的Mac版音效模式

    音乐是很好的情绪抒发途径,因为音乐蕴含了很多信息,包含了很多情感,所以我们聆听不同种类的音乐的时候会产生不同的心理感受.这就是音乐的魅力,可以让人产生共鸣引发无数的思绪.为了能够更好的体会感受音乐可以 ...

  6. 「CERC2017」Donut Drone

    题目链接 洛谷P4739 题目翻译: 你正在模拟无人机探索一个不稳定的环状行星的过程.技术上说,无人机正在穿过一个环形网格---一个在两维上都首尾环绕在一起的矩形网格.格子的行号从上到下依次编号为\( ...

  7. NOIP2015 解题报告

    Day1 T3 运输计划 二分之后做一遍树上差分,找出被所有时间超限的运输计划覆盖的花费时间最长的航道,将其改造成虫洞. LCA 用倍增求可能会被卡常,建议用 Tarjan 求.

  8. Python是什么?

    Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年. 像 Perl ...

  9. EggJS 云原生应用硬核实战(Kubernetes+Traefik+Helm+Prometheus+Grafana),提供 Demo

    介绍 这是一个关于 Egg.js 应用上云️的示例,笔者所在的大前端团队的已应用于生产. CI/CD & DevOps & GitOps & HPA 等这里暂不做讨论,因为每一 ...

  10. ChromiumWebBrowser flash不能自动播放问题解决方案

    前言:WPF项目 引用 CefSharp.Wpf 79.1.360,新版本的Cef默认flash不能自动播放 步骤一:提高pepflashplayer版本号 在CefSettings中设置版本号参数: ...