Kubernetes 状态集更新:重新创建然后删除播客

Kubernetes 状态集更新:重新创建然后删除播客,kubernetes,kubernetes-statefulset,Kubernetes,Kubernetes Statefulset,Kubernetes状态集按顺序删除并重新创建每个Pod。我感兴趣的是通过重新创建一个pod,然后逐个删除旧的pod(注意反转),来更新StatefulSet 这对我来说很有趣,因为: 现成豆荚的数量没有减少。我知道这也是正常部署更新的工作原理(即,只有在新Pod准备好替换Pod后,才会删除Pod) 更重要的是,它允许我在状态集升级期间执行特定于应用程序的实时迁移。我想在终止(旧)pod-I之前将数据从(旧)pod-I迁移到(新)pod-I(我将在(新)pod-I就绪逻辑中实现) 这样的更新策略

Kubernetes状态集按顺序删除并重新创建每个Pod。我感兴趣的是通过重新创建一个pod,然后逐个删除旧的pod(注意反转),来更新StatefulSet

这对我来说很有趣,因为:

  • 现成豆荚的数量没有减少。我知道这也是正常部署更新的工作原理(即,只有在新Pod准备好替换Pod后,才会删除Pod)
  • 更重要的是,它允许我在状态集升级期间执行特定于应用程序的实时迁移。我想在终止
    (旧)pod-I
    之前将数据从
    (旧)pod-I
    迁移到
    (新)pod-I
    (我将在
    (新)pod-I
    就绪逻辑中实现)

  • 这样的更新策略是否可行?

    否,因为pod根据其序号(
    -0
    -1
    ,等等)具有特定的名称,并且一次只能有一个pod具有给定的名称。部署和守护程序可以突发更新,因为它们的名称是随机的,所以不管您按什么顺序进行操作都无关紧要。

    否,因为pod有基于序号(
    -0
    -1
    ,等等)的特定名称,并且一次只能有一个具有给定名称的pod。部署和守护程序可以突发更新,因为它们的名称是随机的,所以不管您按什么顺序进行操作。

    这在部署中本来是可能的,但在状态集中则不可能。当您非常关心具有已知名称的复制副本的确切数量时,可以使用statefulset。部署用于更具弹性的工作负载

    您可以通过使用多个StatefulSet来实现您的目标-例如,使用3个StatefulSet,每个StatefulSet,而不是一个包含3个副本的StatefulSet。然后在删除以前的状态集之前,为数据迁移部署一个附加的状态集


    或者,这可能是用于管理应用程序的用例。

    这在部署中本来是可能的,但在状态集中不可能。当您非常关心具有已知名称的复制副本的确切数量时,可以使用statefulset。部署用于更具弹性的工作负载

    您可以通过使用多个StatefulSet来实现您的目标-例如,使用3个StatefulSet,每个StatefulSet,而不是一个包含3个副本的StatefulSet。然后在删除以前的状态集之前,为数据迁移部署一个附加的状态集

    或者,这可能是用于管理应用程序的用例