开发者社区> 问答> 正文

是否可以将ReplicaSet配置为允许完成更新?

我目前有一个kubernetes设置,我们正在运行一个解耦drupal / gatsby应用程序。drupal充当gatsby在构建时拉出的内容存储库。Drupal还通过自定义模块配置连接到k8s api并修补部署gatsby运行。Gatsby不会持久运行,而是使用gatsby作为init容器来构建站点,以便它可以由nginx容器提供服务。通过修补部署(修改标签),创建了一个新的复制集,强制新的gatsby构建,最终替换旧的构建。

这似乎运作良好,除了一个方面,当涉及多个后续内容编辑时,副本集的默认缩放行为目前存在问题。当您在drupal中进行后续内容编辑时,它仍将联系k8s api并修补部署。这导致创建新的复制集,原始复制集保持原样,先前的复制集缩小,并且当前正在创建的任何pod(gatsby building)被杀死。我可以看到为什么在大多数情况下这可能是可取的,但对我而言,这会增加您在网站上看到这些更改所需的时间。如果多人同时使用drupal进行编辑,这将会变得复杂并且可能会出现问题。

理想情况下,我希望当前构建的容器能够完成并且这些复制集完成扩展,排队另一个复制集,一旦完成就会创建。这将允许第一个构建中的任何更新尽快部署,同时在包含任何后续内容之后立即排队另一个构建,并且只要负载需要它而不再需要它,这可以继续。有没有办法实现这个目标?

展开
收起
k8s小能手 2018-12-14 16:13:03 2174 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    这是Kubernetes的常规行为。更新部署时,它会根据新设置创建新的ReplicaSet和Pod。Kubernetes会保留一些旧的ReplicatSets以防可能的回滚。
    您无法更改此行为,因此您需要对应用程序的体系结构执行某些操作。

    2019-07-17 23:21:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何让k8s集群30s扩容3000个Pod 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载