开发者社区> 问答> 正文

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

k8s小能手 2018-12-14 16:13:03 471

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

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

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

存储 Kubernetes 应用服务中间件 API nginx 容器 Perl
分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:21:07

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

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程