使用 Recreate 策略和 maxSurge 部署 Kubernetes?
Kubernetes deployment with Recreate strategy and maxSurge?
总结
我可以为部署提供部署策略 Recreate
并为部署设置固定的 maxSurge
吗?
更多详情
我正在开发一个在 Kubernetes 中运行的应用程序。后端将有多个副本,并运行带有数据库迁移的 EF Core。我知道有几种方法可以解决这个问题;这是我目前的想法。
在新版本中,我希望停止所有副本。然后一次应该启动一个副本,并且对于每个副本应该有一个运行迁移的初始化容器(如果需要)。
这似乎是可行的,使用以下两个配置值:
.spec.strategy.type==Recreate
和
.spec.strategy.rollingUpdate.maxSurge==1
这两个可以一起用吗?如果没有,有什么方法可以控制控制器一次启动多少个副本Recreate
策略?
"No! You should do this in a completely different way!"
如果您认为我从完全错误的角度来看这个问题,请随时提出其他方法。
Statefulset 在这种情况下可能会对您有所帮助。
StatefulSets are valuable for applications that require one or more of the following.
- 稳定、唯一的网络标识符。
- 稳定、持久的存储。
- 有序、优雅的部署和扩展。
- 有序、自动滚动更新。
总结
我可以为部署提供部署策略 Recreate
并为部署设置固定的 maxSurge
吗?
更多详情
我正在开发一个在 Kubernetes 中运行的应用程序。后端将有多个副本,并运行带有数据库迁移的 EF Core。我知道有几种方法可以解决这个问题;这是我目前的想法。
在新版本中,我希望停止所有副本。然后一次应该启动一个副本,并且对于每个副本应该有一个运行迁移的初始化容器(如果需要)。
这似乎是可行的,使用以下两个配置值:
.spec.strategy.type==Recreate
和.spec.strategy.rollingUpdate.maxSurge==1
这两个可以一起用吗?如果没有,有什么方法可以控制控制器一次启动多少个副本Recreate
策略?
"No! You should do this in a completely different way!"
如果您认为我从完全错误的角度来看这个问题,请随时提出其他方法。
Statefulset 在这种情况下可能会对您有所帮助。
StatefulSets are valuable for applications that require one or more of the following.
- 稳定、唯一的网络标识符。
- 稳定、持久的存储。
- 有序、优雅的部署和扩展。
- 有序、自动滚动更新。