本指南描述了 Tetrate 管理平面的灾难恢复方案及其影响。适用于 Tetrate Service Bridge(TSB)和 Tetrate Service Express(TSE)。
Tetrate 管理平面的设计(以及分布式控制平面架构)具有以下特点:
- 架构松散耦合:Tetrate 的架构设计松散耦合且具有自我修复能力,这意味着故障的“影响范围”有限,当组件恢复时,平台很快会达到良好的配置状态。
- 所有 Tetrate 组件都是无状态的,可以从故障中恢复:唯一的例外是 Postgres 数据库(配置和审计日志)和 ElasticSearch 数据库(指标),以及 K8s 集群中的秘密。
- 应用和服务不受影响:管理或控制平面组件的任何故障都不会影响在工作负载集群中运行的应用程序和服务的正确操作或安全性。
- 高可用性:我们建议以冗余的高可用方式运行工作负载。冗余的高可用管理平面是可能的,但在 Tetrate 的松散耦合架构中,带来的好处有限,代价是资源使用和额外复杂性。
使用 Tetrate 实现高可用性和灾难恢复
工作负载和数据平面的高可用性
Tetrate 可以帮助你管理和运营跨区域和云的多个生产集群,从而创建一个冗余的数据平面。Tetrate 的 Edge 和东西向网关等功能,以及与 Amazon Route 53 等 GSLB 解决方案的集成,可以在任何原因导致工作负载集群发生故障时,为生产工作负载提供高可用性。
Istio 多区域灾难恢复配置
Tetrate 的解决方案不依赖于 Istio 数据平面的任何 多区域灾难恢复配置。当没有更高级别的控制平面时,才需要这些配置,它们会增加显著的复杂性和额外的故障情景。Tetrate 的控制平面架构意味着单个 istio-per-cluster 部署完全足够,并在故障发生时提供更好的隔离。此外,较小的故障域使得渐进式升级更加容易且风险更低。
管理和控制平面的高可用性
Tetrate 管理和控制平面中的大多数组件都可以从故障中恢复,重新同步配置并在没有任何用户干预的情况下恢复正确的操作。
中央控制平面不能以冗余方式运行,但通过将所有配置缓存到本地 Kubernetes API 服务器(tsb 命名空间)并在需要时从管理平面和远程 Edge 控制平面实例重新同步来实现高可用性。中央控制平面中的任何故障都会迅速恢复,没有任何持久的影响。
管理平面在一个 PostgreSQL 数据库中维护配置并存储审计日志:
- 在部署 TSB 时,客户提供并维护一个合适的 PostgreSQL 实例
- 在部署 TSE 时,会包含一个简单的 PostgreSQL 实例,并由 TSE 进行管理。可以用客户提供的实例替换它
Tetrate 分享了以下建议:
- 为管理平面配置维护一个高可用的 PostgreSQL 数据库
- 如有必要,定期备份数据库
有关各种故障和恢复方案的详细描述,请阅读 故障场景 解释。