在 Kubernetes 上部署一个可扩展的 Apache Cassandra 数据库  

在 Kubernetes 上部署一个可扩展的 Apache Cassandra 数据库

| By Animesh Singh, Anthony Amanse, Ishan Gulhane

Description

当今的企业都在收集、存储和分析海量数据。Apache Cassandra 是一个可大规模扩展的开源 NoSQL 数据库,非常适合管理跨多个数据中心、商用服务器和云的大量结构化、半结构化和非结构化数据。Kubernetes 是全球最流行的容器编排系统,被评为 GitHub 上最活跃的项目之一。在此次学习之旅中,您将了解如何组合这两种强大的系统,在 Kubernetes 上部署一个云原生 Cassandra 实现。

概览

本教程将充分展示 Kubernetes 集群的强大功能。其中将展示如何将全球最受欢迎的 NoSQL 数据库 Apache Cassandra 部署到全球最受欢迎的容器编排平台 Kubernetes 上。您会发现一个来自 IBM Cloud Container 服务的 Kubernetes 集群的多节点可扩展 Cassandra 集群的完整部署路线图。每个 Cassandra 组件都在一个单独的容器或容器组中运行。

借助 Apache Cassandra 的分布式系统,您可以跨多个数据中心部署大量节点。Cassandra 的分布式架构是为实现多数据中心部署、冗余性、故障转移和灾难恢复而量身定制的。这些特性相结合,使得该架构非常适用于容器编排平台,并为您提供了自动化、运营、扩展和监控的所有优势。

  1. 开发人员创建一个headless service。Kubernetes 服务是一个抽象概念,它定义了一个 Pod 逻辑集合以及访问这些 Pod 所依据的策略。这个headless Cassandra 服务用于 Cassandra 集群编队和“种子”发现。
  2. 开发人员创建一个 Kubernetes ReplicationController 来负责创建并扩展非持久 Cassandra 集群 Pod 节点。在开发人员确认已创建一个 Cassandra 节点后,就可以在 ReplicationController 中添加更多节点来扩展 Cassandra 集群。
  3. 要创建持久 Cassandra 节点,开发人员需要使用静态配置功能来配备持久卷,使用提供的文件来创建卷。开发人员创建与 Cassandra 节点数量相同的 PersistentVolume。
  4. 开发人员使用 Kubernetes StatefulSets 创建并扩展持久 Cassandra 集群节点 Pod。StatefulSet 负责有序部署、有序终止和唯一网络名称。
  5. 开发人员使用 Cassandra Query Language (CQL) 在 Cassandra 键空间上创建并更新一个 Employee 表。

相关博客

相关链接

致谢:

感谢郭剑南、邢舟对此 Code Pattern 的翻译内容的审核,并提供了宝贵的反馈意见。

Cloud Kubernetes 实战入门

本文介绍了 Kubernetes 基本架构和核心组件功能,在 Cloud 云平台如何创建 Kubernetes Cluster,如何部署应用到 Cluster。

Kubernetes 开发指南

在本指南中,我们将展示如何通过设置 Ubuntu 并在其上开发和测试 Kubernetes。