Consul

概述

Consul 是一项能够感知多数据中心的服务网络解决方案,可以跨运行时平台连接服务并确保其安全。 Connect 是提供服务网格功能的组件。

体系结构

默认情况下,Consul 提供由基于 Envoy挎斗组成的数据平面。 Consul 有一个可插入的代理体系结构。 这些智能代理控制进出网格应用和工作负荷的所有网络流量。

控制平面通过以下组件管理配置和策略:

  • 服务器 - 一个以“服务器”模式运行的 Consul 代理,可保留 Consul 群集状态。

  • 客户端 - 一个 Consul 代理,在轻型客户端模式下运行。 每个计算节点必须有一个正在运行的客户端代理。 此客户端代理工作负荷和 Consul 配置之间的配置和策略。

下面的体系结构关系图演示了数据平面和控制平面内的各种组件如何交互。

Overview of Consul components and architecture.

选择条件

为工作负荷评估 Consul 时,请务必了解并考虑以下方面:

Consul 原则

以下原则指导 Consul 项目:

  • API 驱动 - 对所有配置和策略进行编码。

  • 在任意位置运行并连接 - 跨运行时平台(Kubernetes、VM、无服务器)连接工作负荷。

  • 扩展和集成 - 跨基础结构安全地连接工作负荷。

功能

Consul 提供下述功能集:

  • 网格 - 网关(多数据中心)、虚拟机(源自群集节点)、服务同步、内置调试选项

  • 代理 - Envoy、内置代理、可插入、适用于 Windows 工作负荷的 l4 代理

  • 流量管理 - 路由、拆分、解析

  • 策略 - 意向、ACL

  • 安全性 - 授权、身份验证、加密、基于 SPIFFE 的标识、外部 CA(保管库)、证书管理、轮换

  • 可观测性 - 指标、UI 仪表板、prometheus、grafana

方案

Consul 非常适合以下方案,建议采用:

  • 扩展现有的 Consul 连接的工作负荷

  • 围绕证书管理制定的符合性要求

  • 多群集服务网格

  • 基于 VM 的工作负荷,将会包括在服务网格中

后续步骤

以下文档介绍如何在 Azure Kubernetes 服务 (AKS) 上安装 Consul:

此外,还可以通过以下文章进一步了解 Consul 的功能和体系结构: