【Consul】概述

欢迎来到 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 服务器将请求转发到远程数据中心并返回结果。

你可能感兴趣的:(【Consul】概述)