【发布时间】:2017-07-07 07:50:06
【问题描述】:
我有一个在 Kubernetes 上运行的由 3 个 Cassandra pod 组成的集群。我想自动备份我的数据,为此我需要在每个容器内运行 nodetool snaphot 命令,并且我需要远程调用它。从架构的角度来看,正确的方法是什么? 我是否需要修改 cassandra 映像以在其中包含 ssh 守护进程,或者我是否需要在 cassandra pod 中包含辅助容器或通过“kubectl exec”Kubernetes API 调用来执行此操作?其他选择?
【问题讨论】:
-
sidecar 类型的模式似乎是目前解决此用例的一种方法。有一个正在开发中的快照 API (github.com/kubernetes/kubernetes/issues/44172),您将来应该可以使用它。
-
@AnirudhRamanathan 感谢您的回答。我也考虑过边车模式,但对我来说有很多开销(运行 nodetool 需要 java 和 python),并且每个 cassandra 容器都需要它。不确定 k8s 快照 API 是否会对我有所帮助,因为在进行快照之前,我仍然需要告诉 cassandra 将内存中的所有内容刷新到磁盘。
标签: kubernetes database-backups