【问题标题】:Maintaining replicated database in kubernetes在 Kubernetes 中维护复制数据库
【发布时间】:2016-09-14 12:36:36
【问题描述】:
我已经复制了 cassandra 数据库,想知道维护其数据的最佳方式。
目前我将 kubernetes emptyDir 用于 cassandra 容器卷。
- 我可以将 google 的 Persistent 磁盘用于复制的 cassandra db pod 吗?
- 如果我有 3 个 cassandra 节点,其中一个节点发生故障/损坏,那么 google 的持久磁盘数据会发生什么情况?
- 如果所有 3 个节点都出现故障,我是否仍然能够将 db 数据从 google 的持久磁盘填充到启动的新 pod 中?
- 如何备份谷歌永久磁盘中的db数据?
【问题讨论】:
标签:
cassandra
google-cloud-storage
kubernetes
cassandra-2.0
persistent-storage
【解决方案1】:
我会按照同样的顺序回答你的问题:
1:您可以将 Google 的永久磁盘用于主 Cassandra 节点,然后所有其他 cassandra 副本将只使用它们的本地 emptyDir。
2:当部署到云时,期望实例是短暂的并且可能随时死亡。 Cassandra 被构建为跨集群复制数据以促进数据冗余,因此在实例死亡的情况下,存储在实例上的数据不会,并且集群可以通过将数据重新复制到其他运行节点来做出反应。您可以使用 DaemonSet 在 Kubernetes 集群中的每个节点上放置一个 pod,这将为您提供数据冗余。
是否可以在此处提供更多信息?新的吊舱将如何旋转?
拍摄磁盘快照,或将 epmtyDir 与 sidecar 容器结合使用,以便定期对目录进行快照并将其上传到 Google Cloud Storage。