1

我将我的软件抽象为 k8s 运算符。当我想发布我的软件时,有两种解决方案,哪一种更好?

  1. 创建一个新的服务来检测版本变化是否需要运行迁移脚本然后执行迁移。
  2. 在 Operator 中编写是否运行迁移脚本的逻辑。使用 Operator 自动检测版本更改。
4

1 回答 1

0

Operator 旨在管理应用程序的生命周期,因此 Operator 是应该检测和运行此迁移的服务。

为此,您有几个选择:

  1. 在计时器上重新同步。定期拉图像。如果 sha 已更改,请运行迁移逻辑。这里的问题是,当您开始拥有多个版本时,它会变得非常复杂。
  2. 将操作员的版本与托管应用程序的版本绑定,以便在升级操作员时进行迁移。请注意,在这种情况下,操作员应负责为托管应用程序创建 CR。您可以使用 Helm 或 OLM 为您管理该操作员升级(特别是如果您想要非常具体的更新路径:例如 1.0.0 -> 1.0.1 -> 1.0.2 但不是 1.0.1 -> 1.0.2直接地)。
于 2022-03-01T13:54:19.527 回答