无法使用重新创建策略定义Kubernetes有状态集

无法使用重新创建策略定义Kubernetes有状态集,kubernetes,Kubernetes,我遇到了一些我不太明白的事情。部署时,我可以定义策略。作为“重新创建”或“滚动更新”。见本文: 但是现在我有了一个有状态的集合,它不接受关键字策略,但是想要有updateStrategy。尝试通过类型重新创建时,我从Helm处收到以下错误: Error: StatefulSet.apps "businessmanager-dev-prom-business-manager-set" is invalid: spec.updateStrategy: Invalid value: apps.Stat

我遇到了一些我不太明白的事情。部署时,我可以定义策略。作为“重新创建”或“滚动更新”。见本文:

但是现在我有了一个有状态的集合,它不接受关键字策略,但是想要有updateStrategy。尝试通过类型重新创建时,我从Helm处收到以下错误:

Error: StatefulSet.apps "businessmanager-dev-prom-business-manager-set" is invalid: spec.updateStrategy: Invalid value: apps.StatefulSetUpdateStrategy{Type:"Recreate", RollingUpdate:(*apps.RollingUpdateStatefulSetStrategy)(0xc43d534178)}: must be 'RollingUpdate' or 'OnDelete'
Error: UPGRADE FAILED: StatefulSet.apps "businessmanager-dev-prom-business-manager-set" is invalid: spec.updateStrategy: Invalid value: apps.StatefulSetUpdateStrategy{Type:"Recreate", RollingUpdate:(*apps.RollingUpdateStatefulSetStrategy)(0xc43d534178)}: must be 'RollingUpdate' or 'OnDelete'

这说明我不允许使用“重新创建”。为什么不允许在有状态集合中使用Recreate策略,为什么必须使用UPDATESTRAGEY而不是策略?这看起来像是一些不推荐的行为。

对于有状态集,您可以实现蓝/绿更新、滚动更新、OnDelete策略

在pod内运行有状态应用程序时使用的有状态集。例如,在RAM中存储某些内容。redis数据库作为有状态集运行

有状态集自动管理序列,如示例“redis-0”、“redis-1”,因此,如果pod出现任何问题,它将关闭进程并启动新进程,并尝试管理相同的状态


如果您使用策略Recreate,它将删除pod,首先终止它,然后再次启动新的pod,这是针对无状态应用程序的。滚动更新也是同样的方法。

Folling update它是创建一个全新的pod,并在新pod准备接受请求时立即删除pod。