这是K8ssandra的Kubernetes运营商。
文档网站
K8SSANDRA-EPERATOR是在Kubernetes上管理Apache Cassandra和DSE的交钥匙解决方案。 Apache Cassandra是NOSQL的首屈一指的列数据存储,提供低延迟,地理复制和存储数据之前的能力。阿帕奇·卡桑德拉(Apache Cassandra)在某种程度上使用了500强财产的90%。
DataStax Enterprise,DSE是Apache Cassandra的DataStax分布,提供了其他功能,例如高级安全性,搜索和图形,以及Cassandra中尚未提供的功能,例如vector搜索生成AI应用程序。
K8SSANDRA-SERATOR允许部署多个Apache Cassandra数据中心,这些数据中心跨越了多个Kubernetes群集。该体系结构的目的是提供地理复制,以增强延迟(通过将数据更接近最终用户移动)和可用性(通过在数据中心故障或网络分区时提供多个数据中心来服务请求)。
Apache Cassandra提供了架子和故障区意识数据复制,既可以复制又分碎,以进行性能和保护。
它包含以下功能;
Apache Cassandra可以在单独的区域或可用性/故障区域中部署到多个数据中心中。 K8SSANDRA-ASERATOR通过在多个Kubernetes群集之间进行通信并将Cassandra数据中心部署到其中,从而使这一成为可能。
这将K8SSandra-operator与Cass-operator(可在K8SSandra-operator内部使用)区分开,该操作员不会自动化多区域部署。
控制平面群集中的单个K8SSANDRA-ASERATOR实例可以在多个Kubernetes簇上管理许多数据平面DC,并在多个Cassandra簇上分裂。多达1000个节点的簇已经进行了测试并确认表现良好。
支持高级的Cassandra功能,例如更改数据捕获(CDC),并且可以使用Kubernetes清单配置。
监视是任何分布式系统中的关键服务,K8SSandra-operator通过添加到Cassandra JVM中的代理提供了丰富的Apache Cassandra指标。
通过与向量集成,K8SSandra-oserator允许指标流到用户选择的位置,包括现有的Prometheus或Mimir实例。还支持各种其他协议和系统,例如AMQP,Elasticsearch,Kafka或Redis(有关集成的完整列表,请参见此处)。
可以使用Kubernetes自定义资源配置指标管道,从而创建多个管道,以支持许多群集中的不同用例。
支持Cassandra审核和监视功能,例如完整查询日志记录,可以直接从K8SSandRacluster清单中配置。
Apache Cassandra需要定期维护,以确保在整个集群中始终如一地复制数据。 K8SSANDRA-操作员通过使用Reaper定期进行维修来自动化此过程,这是K8SSANDRA团队维护的Cassandra的广泛采用的解决方案。
使用K8SSandra-operator,您可以使用Kubernetes清单来配置和监视许多Cassandra数据中心和集群中维修时间表的成功。
K8SSANDRA-operator使用Medusa启用Cassandra Sstables的备份到云存储位置,例如S3存储桶,GCS和Azure存储。
可以使用Kubernetes清单配置备份和还原计划,从而允许对备份和还原过程进行声明性,可审计的管理。
Apache Cassandra的Stargate提供了高级API,包括与Node.js,GraphQL和REST的Mongoose对象建模框架集成。它还可以在某些集群拓扑中增强Cassandra的本机CQL性能。
使用K8SSandra-operator,可以通过简单的Kubernetes表现来部署和配置Stargate。
该文档涵盖了从安装详细信息,部署的组件,配置参考以及基于结果的任务中的所有内容。
要安装K8SSANDRA-OPERATOR启动[此处]({{<relref“ install/”>}})。
请务必在Github上留下一颗星星!
K8SANDRA运营商首先要使用多群集的支持开发。它也可以在单集群部署中无缝使用。
K8SSANDRA操作员由控制平面和数据平面组成。控制平面创建并管理仅在API服务器中存在的对象。控制平面不部署或管理POD。
注意:控制平面只能安装在一个群集中,即控制平面群集。
数据平面可以安装在任意数量的群集上。控制平面群集还可以用作数据平面。
数据平面部署并管理POD。此外,数据平面可能直接与托管应用程序进行交互。例如,操作员致电管理API在Cassandra中创建密钥空间。
在此图中,您可以看到一个多群集部署的小例子。

需要在Kubernetes簇之间具有可路由的POD IP。但是,将来可能会放松这一要求。
如果您在云提供商中运行,则可以通过在同一VPC中安装Kubernetes簇来获得可路由的IP。
如果您在本地运行多种类型群集,则假设它们在通常情况下的同一docker网络上运行,则可以使用可路由的POD IP。我们将其用于多群集E2E测试。
请参阅“安装指南”。
有关参与K8SSANDRA的更多信息,请查看K8SSANDRA社区页面。
本节的其余部分着重于操作员本身的开发。
在K8SSANDRA.IO上查看完整的K8SSANDRA文档。
在Forum.k8ssandra.io上开始或加入论坛讨论。
加入我们的不和谐。
对于K8SSANDRA 1.X的任何特定内容,请在K8SSandra Repo中创建问题。
请参阅《开发指南》。