【问题标题】:Managing Cassandra data storage size and backups under Kubernetes在 Kubernetes 下管理 Cassandra 数据存储大小和备份
【发布时间】:2017-04-13 06:31:56
【问题描述】:

我想使用此处给出的示例在 Google Container Engine 上的 Kubernetes 下运行 Cassandra 集群:https://github.com/kubernetes/kubernetes/tree/master/examples/storage/cassandra

该文件描述了 3 种设置集群的方法 - PetSet(StatefulSet)、Replication Controller 和 DaemonSet。它们各有优缺点。

在尝试为我选择最佳设置时,我注意到我无法弄清楚如何处理存储和备份。

  1. 如何设置或缩放存储大小(增加/减少节点/集群数据存储大小而不丢失数据)?
  2. 如何管理备份和恢复?

【问题讨论】:

  • 将存储附加到节点/集群的一个选项是使用FUSE adapter 将Google Cloud Storage 映射为网络磁盘。如果您为 Kubernetes 集群配置 Replication controller,它将确保在任何时候都运行指定数量的 pod。
  • @Faizan 与我的问题不太相关...我无法控制在实例中运行的 pod,因此当 pod 重新启动或缩放并且多个 pod 在同一个上运行时,我很容易弄得一团糟实例。我很确定存储应该附加到 pod 而不是节点。无论如何,它并不能帮助我扩展存储或管理备份。
  • @Idan 自从您提出这个问题以来,您找到解决方案了吗?我现在面临同样的情况。
  • @sev3ryn nope :\ 并停止积极寻找...

标签: cassandra kubernetes google-cloud-platform database-backups


【解决方案1】:

您绝对应该查看 ClusterHQ 的 Flocker 和 Flockerhub。我一直在玩弄他们的产品,以便用 POC 证明容器化的分片数据库可以以一种简单且可管理的方式完成。确保检查出来: https://clusterhq.com/

他们处理数据的方式与处理 docker 图像的方式相同。因此,您将能够将数据卷推送和拉取到集线器/存储库中。

【讨论】:

  • 看起来不错的产品。但它是一个卷驱动程序,可确保您的 pod 在重新启动后使用自己的卷数据运行,而不是空的。缺点是 1)不确定它如何与复制控制器一起工作(将继续阅读)2)您需要预先创建所有卷(无自动缩放)3)无需调整现有卷的大小。
【解决方案2】:

简短的回答是在 kubernetes 中没有办法做到这一点。 Kubernetes 在存储管理方面做得很少。

如果您可以灵活选择其他解决方案,check this out。

它们提供基于容器的解决方案,结合了计算、网络、存储,因此您可以完全控制 cassandra 所需的所有资源,并执行快照/恢复、横向扩展、纵向扩展/缩减等操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    相关资源
    最近更新 更多