Linux上安装Consul

Consul是一个网络工具,提供了一个功能齐全的service-mesh控制层,服务发现,配置,和分区。

一.安装

1.安装consul

下载consul,这里我下载的是linux版本的,

在这里插入图片描述

下载下来的是一个zip压缩文件,解压后得到一个consul二进制文件,解压后,确保consul文件可被环境变量访问

# 解压consul
$ unzip consul_1.7.2_linux_amd64.zip
# 查看PATH变量
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
#我这里把consul文件放在/usr/local/bin目录下,保证consul可以访问到
$ mv consul /usr/local/bin

2.验证是否安装成功,在命令行中输入consul

$ consul
usage: consul [--version] [--help] <command> [<args>]

Available commands are:
    agent          Runs a Consul agent
    event          Fire a new event

...

​ 如果您得到一个无法找到consul的错误,说明你的PATH环境变量没有正确设置。请确保您的PATH变量包含安装了consul的目录

二.运行consul代理

安装领事后,你需要启动consul代理。以下将以开发模式运行consul代理,这种模式不安全,也不具有可伸缩性,但是可以让你轻松体验consul的大多数功能,而不需要额外的配置。你还将知道如何优雅地关闭consul代理

服务端和客户端代理

在生产环境中,可以在服务器或客户端模式下运行每个consul代理。每个consul数据中心必须至少有一个服务器,负责维护consul的状态。这包括关于其他consul服务器和客户端的信息、可用于发现的服务以及允许哪些服务与哪些其他服务进行通信。

为了确保即使服务器发生故障也能维护consul的状态,您应该始终在生产环境中运行3或5个服务器。服务器的奇数(不超过5个)在性能和容错之间取得平衡

非服务器代理在客户端模式下运行。客户机是一个轻量级进程,它注册服务、运行健康检查并将查询转发到服务器。客户端必须运行在运行服务的consul数据中心的每个节点上,因为客户端是服务健康状况的真实来源。

当你准备在生产使用时,可以在部署指南中找到关于服务器和客户端的生产部署的更多指导。现在,让我们以开发模式启动本地代理,这是一种内存服务器模式,为便于使用启用了一些公共特性(尽管存在安全风险),并且关闭了所有持久性选项。

启动consul代理

在开发模式下启动consul代理。

 $ consul agent -dev
==> Starting Consul agent...
           Version: 'v1.7.2'
           Node ID: '58b5abd3-4071-f5d5-bf6d-d87e0e7fb079'
         Node name: 'alias'
        Datacenter: 'dc1' (Segment: '<all>')
            Server: true (Bootstrap: false)
       Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, DNS: 8600)
      Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false, Auto-Encrypt-TLS: false

==> Log data will now stream in as it occurs:

    2020-03-18T20:14:44.575+0800 [DEBUG] agent: Using random ID as node ID: id=58b5abd3-4071-f5d5-bf6d-d87e0e7fb079
    2020-03-18T20:14:44.575+0800 [DEBUG] agent.tlsutil: Update: version=1
    2020-03-18T20:14:44.576+0800 [DEBUG] agent.tlsutil: OutgoingRPCWrapper: version=1
    2020-03-18T20:14:44.576+0800 [INFO]  agent.server.raft: initial configuration: index=1 servers="[{Suffrage:Voter ID:58b5abd3-4071-f5d5-bf6d-d87e0e7fb079 Address:127.0.0.1:8300}]"
    2020-03-18T20:14:44.576+0800 [INFO]  agent.server.serf.wan: serf: EventMemberJoin: alias.dc1 127.0.0.1
    2020-03-18T20:14:44.576+0800 [INFO]  agent.server.serf.lan: serf: EventMemberJoin: alias 127.0.0.1
    2020-03-18T20:14:44.577+0800 [INFO]  agent: Started DNS server: address=127.0.0.1:8600 network=udp
    2020-03-18T20:14:44.577+0800 [INFO]  agent.server.raft: entering follower state: follower="Node at 127.0.0.1:8300 [Follower]" leader=
    2020-03-18T20:14:44.579+0800 [INFO]  agent.server: Adding LAN server: server="alias (Addr: tcp/127.0.0.1:8300) (DC: dc1)"
    2020-03-18T20:14:44.579+0800 [INFO]  agent.server: Handled event for server in area: event=member-join server=alias.dc1 area=wan
    2020-03-18T20:14:44.580+0800 [INFO]  agent: Started DNS server: address=127.0.0.1:8600 network=tcp
    2020-03-18T20:14:44.581+0800 [INFO]  agent: Started HTTP server: address=127.0.0.1:8500 network=tcp
    2020-03-18T20:14:44.581+0800 [INFO]  agent: started state syncer
==> Consul agent running!
    2020-03-18T20:14:44.581+0800 [INFO]  agent: Started gRPC server: address=127.0.0.1:8502 network=tcp
    2020-03-18T20:14:44.614+0800 [WARN]  agent.server.raft: heartbeat timeout reached, starting election: last-leader=
    2020-03-18T20:14:44.614+0800 [INFO]  agent.server.raft: entering candidate state: node="Node at 127.0.0.1:8300 [Candidate]" term=2
    2020-03-18T20:14:44.615+0800 [DEBUG] agent.server.raft: votes: needed=1
    2020-03-18T20:14:44.615+0800 [DEBUG] agent.server.raft: vote granted: from=58b5abd3-4071-f5d5-bf6d-d87e0e7fb079 term=2 tally=1
    2020-03-18T20:14:44.615+0800 [INFO]  agent.server.raft: election won: tally=1
    2020-03-18T20:14:44.615+0800 [INFO]  agent.server.raft: entering leader state: leader="Node at 127.0.0.1:8300 [Leader]"
    2020-03-18T20:14:44.615+0800 [INFO]  agent.server: cluster leadership acquired

启动日志显示,consul代理已经启动,并正在传输一些日志数据。他们还报告说,代理正在作为服务器运行,并声称为leader。此外,本地代理已被标记为数据中心的健康成员。

Datacenter Members

在新的终端窗口中运行consul members命令,检查consul数据中心的成员关系。输出列出了数据中心中的代理。稍后我们将介绍如何将领事代理连接在一起,但目前只有一个成员(当前的机器)。

$ consul members
Node   Address         Status  Type    Build  Protocol  DC   Segment
alias  127.0.0.1:8301  alive   server  1.7.2  2         dc1  <all>

输出显示出你的代理、IP地址、健康状态、代理在数据中心中的角色以及一些版本信息。你可以使用-detailed标记来发现额外的元数据。

mem

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值