【问题标题】:Openshift: trigger pods restart sequentiallyOpenshift:触发 pods 顺序重启
【发布时间】:2018-02-05 20:49:49
【问题描述】:

我的应用程序在启动期间加载数据。所以我需要重新启动应用程序来更改数据。

数据是从 Oracle 模式加载的,可以被其他应用程序更改。

如果数据发生变化,应用程序会部分功能并需要重新启动。

要求:应该在不停机的情况下自动重启(旧的pod应该被杀死,当新的pod通过就绪检查时)。

如何满足这一要求?

注意事项

  1. 我真的很想使用 liveness probe 来检查一些带有健康检查的 URL。 问题:一旦检查失败,AFAIK liveness 探针就会杀死 pod。所以所有 pod 将同时被杀死,这会导致停机 在启动期间。
  2. 可以通过滚动部署实现所需的行为。但是我不想手动执行。
  3. 为了简单起见,我不想在 Pod 操作期间实现加载数据:它只能在启动期间加载数据。如果 pod 状态未完全发挥作用,则会将其杀死并重新创建。

【问题讨论】:

    标签: kubernetes openshift


    【解决方案1】:

    我能想到的两种方法: - 使用 statefulsets,pod 将按顺序重新启动并以相反的顺序杀死。 - 您可以使用部署的 spec.strategy.type = RollingUpgrade 并将其与 maxUnavailable 配对,使其大于 1。

    .spec.strategy.rollingUpdate.maxUnavailable

    【讨论】:

    • 你好@baltazar-chua:谢谢你的回复。你能提供一些细节吗?什么会触发重启?
    • 我不知道你的确切用例。可能有更好的方法来解决这个问题。尽管如此,你认为将 livenessprobe 与 statefulsets 配对会得到你想要的结果吗?例如,由于您使用的是 statefulsets,您可以让它们按照 statefulset 的顺序对 liveness 做出反应,即 1,2,3...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    相关资源
    最近更新 更多