首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种设计模式可以定期更新kubernetes中的数据库而没有不一致?

是否有一种设计模式可以定期更新kubernetes中的数据库而没有不一致?
EN

Stack Overflow用户
提问于 2021-02-11 08:43:48
回答 1查看 54关注 0票数 0

我在Kubernetes集群中有一个简单的Node.js API服务,它连接到一个MongoDB。这个应用程序将删除数据库中的所有数据,并每十分钟填充一次新数据。

在我当前的设置中,我有一个用于API的NodePort服务和一个用于DB的ClusterIP服务。我认为只要有服务,一切都能正常工作。但是,我担心如果Node.js的数量不是一个,而是10个,它会在10个不同的时间删除和上传数据库。

是否有任何方法确保无论有多少Node.js荚只有一次这个数据库被删除和上传每10分钟?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-11 08:56:07

我看到了两种方式,但都需要一些代码更改:

  1. 定义了一个环境变量来启用删除作业,并将您的部署分为两部分:一个是已启用删除的单个副本部署,另一个部署是禁用删除的所有其他副本。

  1. 使用状态集并仅在第一个pod上运行删除。您可以通过检查每个荚上始终相同的荚名来做到这一点,例如,对于第一个荚,您可以检查"myapp-0“。

这两种情况都能解决你的问题,但并不那么优雅。更符合kubernetes设计的是从代码中删除“每10分钟删除一次”,并将删除代码放在CLI命令中。然后创建一个kubernete CronJob,它每10分钟运行一次这个命令。这样,您就可以保持一个“干净”的部署,并从kubernetes cronjobs获得所有可见性、特性和保证。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66151360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档