iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux环境下部署Consul集群
  • 640
分享到

Linux环境下部署Consul集群

Linux部署Consul集群 2022-06-05 00:06:15 640人浏览 独家记忆
摘要

目录1.Consul概念1.1什么是Consul?1.2Consul的特点1.3Consul架构1.4Consul的应用场景包括服务发现、服务隔离与服务配置2.Consul在linux上的集群部署2.1前期准备2.2集群

目录
  • 1.Consul概念
    • 1.1什么是Consul?
    • 1.2Consul的特点
    • 1.3Consul架构
    • 1.4Consul的应用场景包括服务发现、服务隔离与服务配置
  • 2.Consul在linux上的集群部署
    • 2.1前期准备
    • 2.2集群部署

1.Consul概念

1.1什么是Consul?

Consul是一种服务网格解决方案,是HashiCorp公司推出的开源组件,由Go语言开发,部署起来很容易,只需要极少的可执行程序和配置。同时Consul也是一个分布式的,高度可用的系统,它附带了一个简单的内置代理,开箱即用,也支持Envoy等第三方代理集成,它还提供了具有服务发现,配置和分段功能。

1.2Consul的特点

  • 服务发现(Service Discovery):Consul提供了通过DNS或者Http接口的方式来注册服务和发现服务。一些应用程序通过Consul很容易的找到它所依赖的服务。
  • 健康检查(Health Checking):Consul的Client可以提供任何数量的健康检查,这些健康检查与应用服务(“ WEB服务器是否返回200 OK”)或本地节点(“内存利用率低于90%”)相关联。操作员可以使用此信息来监视集群的健康状况,通过服务发现组件监控,避免流量路由到健康状况不佳的应用主机中。
  • Key/Value存储(Key/Value Store):应用程序可以根据自己的需求使用Consul提供的Key/Value存储。Consul提供了简单易用的HTTP接口,结合其他工具可以实现动态配置(dynamic configuration)、功能标记(feature flagging)、协调(coordination)、领袖选举( leader election)等等功能。
  • 安全的服务通信(Secure Service Communication):Consul可以为服务生成和分发TLS证书,以建立相互的TLS连接。意图可用于定义允许哪些服务通信。服务分割可以很容易地进行管理,其目的是可以实时更改的,而不是使用复杂的网络拓扑和静态防火墙规则。
  • 多数据中心(Multi Datacenter):Consul支持开箱即用的多数据中心。这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域。

1.3Consul架构

Linux环境下部署Consul集群

根据这幅图可以看到有两个数据中心,分别为DataCenter1和DataCenter2。Consul拥有对多个数据中心的一流支持,这是比较常见的情况。

在每个数据中心中,我们都有客户端和服务器。最好是有三到五台服务器,这对于在故障情况下的可用性和性能之间取得了平衡,因为随着添加更多的机器,一致性会逐渐变慢。但是,客户端的数量没有限制,可以很容易地扩展到数千或数万。

Consul实现多个数据中心都依赖于gossip protocol协议。这样做有几个目的:首先,不需要使用服务器的地址来配置客户端;服务发现是自动完成的。其次,健康检查故障的工作不是放在服务器上,而是分布式的。这使得故障检测比单纯的心跳模式更具可伸缩性。为节点提供故障检测;如果无法访问代理,则节点可能经历了故障。

每个数据中心中的服务器都是一个Raft对等集的一部分。这意味着它们一起工作来选举单个leader,一个被选中的服务器有额外的职责。领导负责处理所有的查询和事务。事务还必须作为协商一致协议的一部分复制到所有对等方。由于这个需求,当非leader服务器接收到rpc请求时,它会将其转发给集群leader。

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

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

2.Consul在linux上的集群部署

在consul官网https://www.consul.io/downloads)上下载linux系统组件的最新版本,示例版本是1.8.5:

Linux环境下部署Consul集群

2.1前期准备

虚拟机上准备三台Centos

CentOS 7-No.1:192.168.113.128
CentOS 7-No.2:192.168.113.129
CentOS 7-No.3:192.168.113.130

通过Xftp(或者其他工具)把解压好的consul组件分别上传到三台linux服务器里面,组件安装目录随自己喜好,我是放在/root目录里面的:

Linux环境下部署Consul集群

2.2集群部署

通过Xshell(或者其他工具)输入命令安装集群,先在三台服务器上切换到安装目录:

cd /root/consul_1.8.5_linux_amd64

然后分别在三台服务器上输入如下命令启动Gnxtlxqcr对应的Consul组件:

192.168.113.128:./consul agent -server -bootstrap-expect=3 -data-dir=/root/consul_1.8.5_linux_amd64 -node=server1 -bind=192.168.113.128 -client=0.0.0.0 -datacenter=myservicedc1 -ui
192.168.113.129:./consul agent -server -bootstrap-expect=3 -data-dir=/root/consul_1.8.5_linux_amd64 -node=server2 -bind=192.168.113.129 -client=0.0.0.0 -datacenter myservicedc1
192.168.113.130:./consul agent -server -bootstrap-expect=3 -data-dir=/root/consul_1.8.5_linux_amd64 -node=server3 -bind=192.168.113.130 -client=0.0.0.0 -datacenter myservicedc1

如果报执行权限不够(Permission denied),执行如下命令授予执行权限:

//授予执行权限
chmod +x consul

代理配置参数如下,想要了解更加详细配置参数也可以到官网文档(https://www.consul.io/docs/agent/options)查询:

  • -server:此标志用于控制代理是处于服务器还是客户端模式。提供后,代理将充当Consul服务器。
  • -bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。
  • -data-dir:data存储目录路径。
  • -node:节点id,集群中的每个node必须有一个唯一的名称。默认情况下,Consul使用机器的hostname。
  • -bind:监听的ip地址。默认绑定0.0.0.0,可以不指定。表示Consul监听的地址,而且它必须能够被集群中的其他节点访问。Consul默认会监听第一个Private IP,但最好还是提供一个。生产设备上的服务器通常有好几个网卡,所以指定一个不会出错。
  • -client:客户端的ip地址,0.0.0.0是指谁都可以访问(不加这个,下面的ui :8500无法访问)。
  • -ui:可以访问Consul UI管理界面。
  • -config-dir:指定配置文件夹,Consul会加载其中的所有文件。
  • -datacenter:指定数据中心名称,默认是dc1。

启动Consul集群组件后,会看到如下信息(No cluster leader):

Linux环境下部署Consul集群

这是因为集群没有指定一个leader,所以需要在128、129跟130服务器上之间指定一个为leader。因为这里我指定了128服务器为leader,所以需要在129、130服务器上输入如下命令加入以128为leader的Consul集群:

./consul join 192.168.113.128

输入命令后会看到如下信息:

Linux环境下部署Consul集群

这样说明129、130服务器的Consul组件加入集群成功!以下再列举下如何查看集群成员跟状况的命令:

  • 查看集群成员
./consul members
  • 查看集群状况
./consul operator raft list-peers

在浏览器上输入leader的Consul地址访问:

Linux环境下部署Consul集群

通过上述示例图片可以看到,Consul集群部署成功!

到此这篇关于Linux环境下部署Consul集群的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: Linux环境下部署Consul集群

本文链接: https://www.lsjlt.com/news/21598.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux环境下部署Consul集群
    目录1.Consul概念1.1什么是Consul?1.2Consul的特点1.3Consul架构1.4Consul的应用场景包括服务发现、服务隔离与服务配置2.Consul在linux上的集群部署2.1前期准备2.2集群...
    99+
    2022-06-05
    Linux 部署Consul集群
  • Linux环境下怎么部署Consul集群
    这篇文章主要讲解了“Linux环境下怎么部署Consul集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux环境下怎么部署Consul集群”吧!1.Consul概念1.1什么是Con...
    99+
    2023-06-29
  • Windows环境部署Redis集群
    一、准备文件 1.下载Redis for windows 的最新版本  下载地址:https://github.com/MSOpenTech/redis/releases 安装到 c:Redis 目录下(R...
    99+
    2022-06-04
    集群 环境 Windows
  • Redis集群分片环境部署
    原理 集群技术是构建高并发网站的主要技术,访问网站的最大压力是在访问某个页面时,需要时查询数据库并相应,Redis从3.0版本以后开始支持集群功能了,要让集群正常工作至少得有三个主节点。Redis集群是基于...
    99+
    2022-10-18
  • 如何在kubernetes上部署consul集群
    这篇文章主要介绍“如何在kubernetes上部署consul集群”,在日常操作中,相信很多人在如何在kubernetes上部署consul集群问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在kubern...
    99+
    2023-06-04
  • linux环境下部署php
    随着互联网的快速发展,越来越多的人开始选择使用Linux系统进行网站和应用的开发。其中,基于PHP语言的Web应用在众多开发语言中占据重要位置,因此在Linux环境下部署PHP是非常有必要的。在本文中,我们将介绍如何在Linux系统中部署P...
    99+
    2023-05-24
  • 如何部署Redis 4.0集群环境
    本篇内容主要讲解“如何部署Redis 4.0集群环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何部署Redis 4.0集群环境”吧!实验环境: Red...
    99+
    2022-10-19
  • Linux下的FineBI集群部署
    本篇内容介绍了“Linux下的FineBI集群部署”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在企业应用中,通常单个计算机的配置是有限的,...
    99+
    2023-06-04
  • CentOS 6.5下ZooKeeper3.4.6集群环境部署及单机部署的示例分析
    小编给大家分享一下CentOS 6.5下ZooKeeper3.4.6集群环境部署及单机部署的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!【系统】Cent...
    99+
    2023-06-03
  • Linux环境下GRE怎么部署
    今天小编给大家分享一下Linux环境下GRE怎么部署的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。GRE(Windows不支...
    99+
    2023-06-26
  • Hadoop集群环境部署的示例分析
    这篇文章主要介绍了Hadoop集群环境部署的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为集群自定义一个名称:在安装集群组建之前安装程序需要对主机进行一些环境检查工...
    99+
    2023-06-02
  • 如何使用docker compose搭建consul集群环境
    这篇文章主要介绍如何使用docker compose搭建consul集群环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!consul基本概念server模式和client模式server模式和client模式是co...
    99+
    2023-06-15
  • Kubernetes容器集群管理环境怎么部署
    本文小编为大家详细介绍“Kubernetes容器集群管理环境怎么部署”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kubernetes容器集群管理环境怎么部署”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。通过K...
    99+
    2023-06-29
  • Linux环境下的hosts如何部署
    小编给大家分享一下Linux环境下的hosts如何部署,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux 环境下的 hosts 一键部署脚本,由 @lsto...
    99+
    2023-06-09
  • Linux环境下 Redis的部署安装
    目录 1、离线安装GCC 2、安装包上传解压 3、文件编译安装 5、Redis集群部署 5.1、redis节点 5.2、创建集群 1、离线安装GCC 安装redis需要gcc环境,先查看系统是否安装gcc(gcc --version...
    99+
    2023-08-31
    linux 服务器
  • linux contos6.8下部署kafka集群的方法
    有3台服务器,ip分别为192.168.174.10,192.168.174.11,192.168.174.12。 1、官网下载,分别在每台机器上解压安装 # 创建kafka的安装目录 mkdir -p /usr/...
    99+
    2022-06-04
    contos6.8部署kafka集群 contos kafka集群部署 kafka linux安装部署
  • linux环境部署redis
    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。解压缩,进入redis目录 make && make install ...
    99+
    2023-06-05
  • 使用docker compose搭建consul集群环境的例子
    consul基本概念 server模式和client模式 server模式和client模式是consul节点的类型;client不是指的用户客户端。 server模式提供...
    99+
    2022-11-12
  • Docker Consul集群环境搭建的方法是什么
    本篇内容介绍了“Docker Consul集群环境搭建的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Docker ...
    99+
    2023-06-22
  • 详细讲解Docker-Compose部署Kafka KRaft集群环境
    目录概述环境准备Docker & Docker-ComposeLinux服务器步骤一:部署到开发环境上docker-compose.yml文件编写运行启动脚本(拓展)容器可视...
    99+
    2023-01-12
    Docker Compose部署Kafka KRaft Docker Compose部署
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作