Airbnb如何在Kubernetes上大规模运行分布式数据库

Airbnb如何在Kubernetes上大规模运行分布式数据库

💡 原文英文,约2700词,阅读约需10分钟。
📝

内容提要

Airbnb工程团队通过在多个Kubernetes集群中部署分布式数据库,解决了云中数据库的可靠性问题。他们利用AWS EBS、持久卷声明和自定义操作器,确保数据一致性和高可用性,从而在节点更换和基础设施故障时保持服务可用。

🎯

关键要点

  • Airbnb工程团队通过在多个Kubernetes集群中部署分布式数据库,解决了云中数据库的可靠性问题。
  • 他们利用AWS EBS、持久卷声明和自定义操作器,确保数据一致性和高可用性。
  • 传统上,企业依赖大型独立服务器运行数据库,但随着流量增加,这种方法变得复杂且昂贵。
  • 分布式、水平可扩展的开源SQL数据库的兴起使得组织能够将数据分散到多个小型机器上。
  • Airbnb选择在多个Kubernetes集群中部署数据库,以确保可靠性并减少故障影响。
  • Kubernetes适合运行无状态工作负载,但运行有状态数据库更具挑战性。
  • Airbnb通过使用AWS EBS卷、持久卷声明和自定义Kubernetes操作器来解决节点替换问题。
  • 自定义操作器确保在节点替换时,数据不会丢失或损坏。
  • Airbnb将数据库节点替换分为三类:数据库发起的事件、主动基础设施事件和意外故障。
  • 为了降低Kubernetes升级的风险,Airbnb使用自管理的Kubernetes集群,并逐个集群进行升级。
  • Airbnb在三个不同的AWS可用区中部署数据库,以实现故障隔离和减少故障影响范围。
  • 使用Amazon EBS提供高耐久性和可靠性,支持快速节点替换。
  • Airbnb通过存储读取超时、重试和允许过时读取来应对EBS延迟问题。
  • Airbnb的系统能够处理每秒300万次查询,达到99.95%的可用性,满足严格的可靠性要求。
  • Airbnb的经验为其他工程团队提供了一个路线图,强调从小规模开始、使用操作器确保安全和设计故障隔离。
➡️

继续阅读