consul介绍及安装
consul是什么
官方文档:https://www.consul.io/docs/intro
Consul是一个服务网格解决方案,它提供了一个功能齐全的控制平面,具有服务发现、配置和分段功能。这些特性中的每一个都可以根据需要单独使用,也可以一起用于构建全服务网格。Consul需要一个数据平面,并支持代理和本机集成模型。Consul 附带一个简单的内置代理,使一切工作的开箱即用,但也支持第三方代理集成,如Envoy
。(机翻,嘿嘿嘿)
consul的主要特点是:
-
服务发现:Consul 的客户端可以注册一个服务,例如
api
或mysql
,其他客户端可以使用 Consul 来发现给定服务的提供者。使用 DNS 或 HTTP,应用程序可以轻松找到它们所依赖的服务。 -
健康检查:Consul 客户端可以提供任意数量的健康检查,要么与给定的服务相关联(“网络服务器是否返回 200 OK”),要么与本地节点(“内存利用率是否低于 90%”)相关联。操作员可以使用此信息来监控集群健康状况,并且服务发现组件可以使用它来将路由到健康的主机上。
-
KV 存储:应用程序可以将 Consul 的分层键/值存储用于多种目的,包括动态配置、功能标记、协调、领导选举等。简单的 HTTP API 使其易于使用。
-
安全服务通信:Consul 可以为服务生成和分发 TLS 证书,以建立相互的 TLS 连接。 意图 可用于定义允许哪些服务进行通信。可以通过实时更改意图轻松管理服务分段,而不是使用复杂的网络拓扑和静态防火墙规则。
-
多数据中心:Consul 支持开箱即用的多个数据中心。这意味着 Consul 的用户不必担心构建额外的抽象层以扩展到多个区域。
Consul 的基本架构
Consul 是一个分布式的、高可用的系统。
每个为 Consul 提供服务的节点都运行一个Consul 代理。发现其他服务或获取/设置键/值 数据不需要运行代理。代理负责对节点上的服务以及节点本身进行健康检查。
代理与一台或多台Consul 服务器通话。Consul 服务器是存储和复制数据的地方。服务器自己选举一个领导者。虽然 Consul 可以在一台服务器上运行,但建议使用 3 到 5 台,以避免导致数据丢失的故障场景。建议为每个数据中心使用 Consul 服务器集群。
服务器维护一个目录,该目录由聚合代理提交的信息形成。该目录维护集群的高级视图,包括哪些服务可用、哪些节点运行这些服务、运行状况信息等。可以在此处找到代理和目录的交互方式 。
需要发现其他服务或节点的基础设施组件可以查询任何 Consul 服务器或任何 Consul 代理。代理自动将查询转发到服务器。
每个数据中心都运行一个 Consul 服务器集群。当进行跨数据中心的服务发现或配置请求时,本地Consul服务器将请求转发到远程数据中心并返回结果。
Consul 安装
官网说的安装比较简单:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install consul
可以去官网下载
https://releases.hashicorp.com/consul/1.9.5/consul_1.9.5_linux_amd64.zip
安装完成可以看到版本: