第 6 章 在 Kubernetes 堆栈中集成数据基础设施 在 Kubernetes 堆栈中集成数据基础设施
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在本书中,我们将为大家揭示一个在 Kubernetes 上运行的现代云原生应用程序的未来。到目前为止,我们已经注意到,从历史上看,数据是实现这一目标的最难部分之一。在前面的章节中,我们介绍了 Kubernetes 为管理计算、Network 和存储(第 2 章)资源提供的基元,并考虑了如何使用这些资源在 Kubernetes 上部署数据库(第 3 章)。我们还研究了使用控制器和操作员模式实现基础设施自动化(第 4 章)。
现在,让我们扩大关注点,考虑数据基础架构如何融入 Kubernetes 中的整体应用架构。在本章中,我们将探讨如何将前几章讨论过的构件组装成集成的数据基础架构栈,这些栈易于部署,并能满足每个应用的独特需求。这些堆栈是向我们在第 1 章中 介绍的虚拟数据中心愿景迈出的一步。要了解构建和使用这些大型组件的注意事项,让我们深入了解一下K8ssandra。这个开源项目提供了一个基于 Apache Cassandra 的集成数据堆栈,这是我们在"在 Kubernetes 上运行 Apache Cassandra "一文中首次讨论的数据库。
K8ssandra:Kubernetes 上生产就绪的 Cassandra
为了确定背景,让我们考虑一下将应用工作负载迁移到 Kubernetes 的一些实际挑战。随着企业开始将现有应用迁移到 Kubernetes 并在 Kubernetes 中创建新的云原生应用,数据层的现代化是一个经常被推迟的步骤。无论这些延迟的原因是什么--认为 Kubernetes 还没有为有状态工作负载做好准备、缺乏开发资源或其他因素--其结果都是架构不匹配,应用程序在 Kubernetes 中运行,而数据库和其他数据基础设施则在外部运行。这导致开发人员和 SRE 的关注点被分割,从而限制了工作效率。此外,用于监控应用程序和数据库基础设施的不同工具集也很常见,这增加了云计算成本。
这种采用上的挑战在 Cassandra 社区显而易见。尽管如第 5 章所述,围绕构建单一 Cassandra 操作器的合作与共识日益增强,但开发人员仍面临着数据库和操作器如何适应更大应用环境的关键问题:
如何综合查看整个堆栈(包括应用程序和数据)的健康状况?
如何以适合我们管理数据中心方式的 Kubernetes 本机方式定制安装、升级和其他操作任务的自动化?
为了帮助解决这些问题,John Sanda 和 DataStax 的一个工程师团队发起了一个名为 K8ssandra 的开源项目,目标是提供一个体现在 Kubernetes 中运行Cassandra 最佳实践的 Cassandra生产就绪部署。K8ssandra 提供定制资源,帮助管理包括集群部署、升级、扩大和缩小规模、数据备份和恢复等任务。您可以在 Jeff Carpenter 的博文《为什么是 K8ssandra?
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access