我在Kubernetes上运行了3个Cassandra pod。我想自动备份我的数据,为此我需要在每个容器内运行nodetool snaphot命令,我需要远程调用它。从架构的角度来看,正确的方法是什么? 我是否需要修改cassandra图像才能在其中使用ssh deamon,或者我是否需要在cassandra pod中使用辅助容器或者通过' kubectl exec' Kubernetes API调用?其他选择?
答案 0 :(得分:0)
我认为k8s cronJob
资源是通过nodetool
备份数据所需要的。通常,cronJob
具有jobTemplate
部分,其中包含spec
部分。而spec
部分则具有容器定义,与Deployment
中的定义几乎相同。您可以在其中构建带有nodetool
的自己的Docker映像(或尝试在dockerhub上找到某个地方),并使用自己的特定配置运行它。
更多信息: https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/