IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker搭建consul集群 -> 正文阅读

[系统运维]docker搭建consul集群


consul是微服务体系中用于服务发现的高可用工具,现在我们来使用docker先搭建一个单点consul agent,然后搭建一个三节点集群。


搭建单节点consul agent


查看所有consul的镜像文件:

docker search consul

在这里插入图片描述

拉取镜像:

docker pull consul

检查拉取是否成功:

docker images

在这里插入图片描述

或者:

docker run consul version

在这里插入图片描述

启动单节点consul agent:

docker run -p 8500:8500/tcp consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0

在这里插入图片描述


如上的命令中,参数说明如下:

  • 暴露了端口,分别是:HTTP端口:8500

  • h:对应的node1为节点的名称

  • server:表示启动的节点类型为server类型

  • bootstrap-expect:用于server节点选举leader的参数,表示达到几个server节点时开始选举


使用浏览器来进行访问(使用阿里云服务器要记得开放安全端口):

在这里插入图片描述


宿主机上查看节点数量:

在这里插入图片描述


搭建三节点集群


启动第一个节点:

启动第一个节点的时候没有使用了 -bootstrap 参数, 而是使用了 -bootstrap-expect 3, 使用这个参数节点会等到所有三个端都连接到一起了才会启动并且成为一个可用的cluster。

$ docker run -d -p 8500:8500 -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul agent -server -bootstrap -ui -node=1 -client='0.0.0.0'

在这里插入图片描述


对如上的参数做如下说明:

  • ui:表示启动 Web UI 管理器,默认开放端口 8500,可以在浏览器进行访问。
  • -name

查看节点IP:


$ JOIN_IP="$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' consul_server_1)"

也可以直接查看container的IP,如下命令:

$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' consul_server_1

在这里插入图片描述


启动第二个节点:

启动 node2并且告诉他通过 $JOIN_IP 加入到 node1:

$ docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_2 consul agent -server -node=2  -join='172.17.0.2'

在这里插入图片描述

这里需要对参数作一下说明:

  • CONSUL_BIND_INTERFACE是consul镜像提供给我们的几个常用的环境变量,该常量与-bind作用相同。
  • name:为启动的节点命名
  • node:为起订的节点赋值一个id
  • agent:表示启动 Agent 进程。
  • server:表示启动Consul Server 模式。
  • join:表示加入到某一个集群中去。

启动第三个节点:

按照同样的方法我们启动 node3:

$ docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_3 consul agent -server -node=3  -join='172.17.0.2'

在这里插入图片描述

现在我们就有了一个拥有3个节点的运行在一台机器上的集群。注意,根据Consul Agent的名字给container起了名字。

我们没有暴露出任何一个端口用以访问这个集群, 但是我们可以使用第四个agent节点以client的模式(不是用 -server参数)。这意味着他不参与选举但是可以和集群交互。而且这个client模式的agent也不需要磁盘做持久化。

$ docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_4 consul agent -client -node=4 -join='172.17.0.2' -client='0.0.0.0'

$ docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_5 consul agent -client -node=5 -join='172.17.0.2' -client='0.0.0.0'

$ docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_6 consul agent -client -node=5 -join='172.17.0.2' -client='0.0.0.0'

如果上述命令都能执行成功,就意味着我们的集群搭建成功了。


查看集群的状态:

集群搭建完成以后,我们可以通过浏览器或者终端命令行的形式来查看,集群里面的节点的状态。


浏览器:

我们可以在浏览器中访问localhost:8500端口,可以看到如下效果:

  • 三个serve类型的节点集群节点:

    在这里插入图片描述

  • 所有的Node节点(server和client):

    在这里插入图片描述

命令行查看节点状态:

docker exec consul_server_1 consul members

在这里插入图片描述


  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:11:44  更:2022-02-26 12:12:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:56:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码