Istio / Envoy 在大规模数据摄取中的应用实践
核心观点与背景
Palo Alto Networks 通过 Istio / Envoy 构建了一个云原生、API 驱动的数据湖,用于存储和处理来自防火墙和应用程序的日志、遥测数据等,日均处理数千亿次事件,支持多租户和微服务架构。
技术选型与架构
- 数据湖功能:支持摄取、查询、流计算、批量计算和系统服务。
- gRPC 技术:因防火墙持续流式传输事件,选择 gRPC 作为传输协议,Envoy 作为唯一支持 gRPC 的代理服务器,配合 Istio 实现服务网格控制。
- Istio 优势:提供超时、重试、断路器、故障注入、负载平衡等功能,支持 API 网关和服务网格,优化 DevOps 实践。
面临的挑战
- 高负载性能瓶颈:日均 150 亿事件,每秒 20 万事件时,系统级联故障。
- gRPC 问题:双向流记录不足,性能特征实验性,高负载下客户端重载 Istio 导致遥测触发减载和限制缩放。
- 组件故障:Citadel / Pilot 错误导致网格中断。
- 资源瓶颈:gRPC 服务器线程竞争、队列过载、JDK 同步操作瓶颈。
解决方案与优化
- 系统升级:将 Istio 从 1.1.7 升级至 1.1.15,解决关键问题,关闭 Istio 遥测使用 Envoy 原生遥测,调整组件资源。
- gRPC 服务器优化:减少线程数量,优化队列处理,升级 JDK 至 13,调整 Kafka 生产者客户端和 gRPC 流缓冲区。
- gRPC 负载平衡:服务器端过期连接,调整流持续时间。
- GKE 调优:增加 conntrack 和 threadMax 限制,将工作负载迁移至 SSD 节点池,调整节点内存和资源。
实施结果
- 高弹性数据管道:实现日均处理数十亿事件,具备高弹性和大规模自动扩展能力。
- 运维效率提升:运维效率高,在多个地区成功推出数据湖。
- 应用集成:众多分析和 AI/ML 应用与数据湖集成。
结语
通过 Istio / Envoy 的优化,成功构建并扩展了大规模数据湖,验证了其在高负载场景下的稳定性和可扩展性。