欢迎来到 Consul 的介绍指南!
本指南是开始使用 Consul 的最佳场所。 我们将介绍 Consul 是什么,它可以解决什么问题,它与现有软件的比较,以及如何开始使用它。
如果您熟悉 Consul 的基础知识,该文档
提供了更详细的可用功能参考。 如果您准备好获得实践经验,请使用我们的 HashiCorp 学习教程
在本地部署 Consul。
Why Consul ?
Consul 解决了各种规模的组织在微服务架构中遇到的挑战。 这范围从 在各种分布式环境和地理位置中运行,到满足保护所有应用程序流量的需要。 世界正在迅速变化和发展,计算网络层也是如此。
当今的网络必须快速适应并确保始终加密通信。 Consul 使组织能够在扩大规模的同时采用零信任模型。 Consul 可以实现这一切,同时通过关键网络任务的自动化,减轻运营商和开发人员的负担。
What is Consul?
Consul 是一个服务网格解决方案,提供具有服务发现、配置和分段功能的全功能控制平面。 这些功能中的每一个都可以根据需要单独使用,也可以一起使用来构建完整的服务网格。 Consul 需要数据平面并支持代理和原生集成模型。 Consul 附带一个简单的内置代理,因此一切都可以开箱即用,而且还支持 Envoy 等 3rd 方代理集成。
Consul 的关键特性有:
服务发现
Consul 的客户端可以注册服务,例如 api 或 mysql,其他客户端可以使用 Consul 发现给定服务的提供者。 使用 DNS 或 HTTP,应用程序可以轻松找到它们所依赖的服务。健康检查
Consul 客户端可以提供任意数量的健康检查,或者与给定服务相关联(“网络服务器是否返回 200 OK”),或者与本地节点相关联(“内存利用率是否低于 90%”)。 操作员可以使用此信息来监控集群的健康状况,服务发现组件使用它来将流量从不健康的主机中路由出去。KV 存储
应用程序可以将 Consul 的 分层键/值存储 用于任何目的,包括动态配置、特征标记、协调、领导者选举等。 简单的 HTTP API 使其易于使用。安全服务通信
Consul 可以为服务生成和分发 TLS 证书以建立相互 TLS 连接。 意图可用于定义允许通信的服务。 可以通过可以实时更改的意图轻松管理服务分段,而不是使用复杂的网络拓扑和静态防火墙规则。多数据中心
Consul 开箱即用地支持多个数据中心。 这意味着 Consul 的用户不必担心构建额外的抽象层以扩展到多个区域。
Consul 旨在对 DevOps 社区和应用程序开发人员都友好,使其非常适合现代、弹性的基础设施。
Consul 的基本架构
Consul 是一个分布式的、高可用的系统。 本节将介绍基础知识,故意省略一些不必要的细节,以便您快速了解 Consul 的工作原理。
有关更多详细信息,请参阅深入的架构概述
。
每个为 Consul 提供服务的节点都运行一个 Consul agent
。 发现其他服务 或 获取/设置 键/值 数据不需要运行 agent。 agent 负责节点上的服务以及节点本身的健康检查。
agent 与一台或多台 Consul 服务器交谈。 Consul 服务器是存储和复制数据的地方。 服务器自己选举领导者。 虽然 Consul 可以与一台服务器一起运行,但建议使用 3 到 5 台,以避免导致数据丢失的故障场景。 建议为每个数据中心使用一组 Consul 服务器。
服务器维护一个目录,该目录是通过聚合 agent 提交的信息形成的。 该目录维护集群的高级视图,包括哪些服务可用、哪些节点运行这些服务、健康信息等等。 可以在此处
找到 agent 和目录如何交互。
需要发现其他服务或节点的基础架构组件,可以向任何 Consul 服务器或任何 Consul agent 发起查询。agent 会自动将查询转发到服务器。
每个数据中心运行一个 Consul 服务器集群。 当提出跨数据中心的服务发现或配置请求时,本地 Consul 服务器将请求转发到远程数据中心并返回结果。