第 11 章 Serverless 升级


在不跳过发行版本的情况下,OpenShift Serverless 应该会被升级。本节演示了如何解决升级的问题。

11.1. Serverless Operator 维护发行版本升级

11.1.1. 最新和维护发行版本

从 OpenShift Serverless 1.29 开始,提供了不同的产品版本,如下所示:

  • 最新版本可通过 stable 频道获得。
  • Maintenance 发行版本可以通过其基于版本的频道获得,如 stable-1.29

    注意

    维护版本是最新版本之前的发行版本。例如,如果 stable 频道包含版本 1.30,则维护版本将在 stable-1.29 频道中提供。

使用基于版本的频道可让您保留在特定的 x.y 流中。另外,它会阻止升级到最新版本的产品,该版本可能包含有问题的更改。

要切换到维护版本,请将订阅对象 YAML 文件中的 channel 参数从 stable 更新为对应的基于版本的频道,如 stable-1.29

11.1.2. 维护版本的补丁和修补程序

与稳定版本一样,维护版本可能会受到补丁和热修复(hotfix)的约束,这有助于保持部署与关键程序错误和安全修复保持同步。

  • 补丁是作为 z-releases 发布的更新,如 OpenShift Serverless 1.29.1,提供自版本 1.29.0 起的更新。
  • 热修补代码是需要零停机时间且直接在生产环境中使用的修复程序。它们与升级客户的部署版本(而不是最新发布的版本)的正常更新不同。

    热修补代码可能不会立即提供给所有客户。但是,在将来的版本中,热修补代码所引入的变化通常可供所有客户使用。

    当一个与您的部署相关的热修复功能时,您将获得热修复 CatalogSource 来更新您的订阅并获取热修补代码。

    在有新的 Operator 发行版本可用后,还可以升级具有热修补代码部署的操作器。要使用最新的 GA 版本,请将订阅修改为使用 public CatalogSource 而不是 hotfix。

下图说明了补丁和热修补代码如何工作:

     stable                                       stable-1.28
+--------------+                 +--------------------------------------------+
|              |                 |                                            |
|  +--------+  | corresponds to  |   +--------+    +--------+    +--------+   |
|  | 1.28.0 |----------------------> | 1.28.0 |    | 1.28.1 |    | 1.28.2 |   |
|  +--------+  |                 |   +--------+    +--------+    +--------+   |
|              |                 |     |                   ^            |     |
|              |                 +-----|-------------------|------------|-----+
|  +--------+  |                created|                   |upgrades    |
|  | 1.28.1 |  |                from   |     hotfix_xyz    |to          |
|  +--------+  |                       |   +------------+  |            |
|              |                       +-->|            |--+            |
|              |                           |            |               |
|  +--------+  | upgrades to               +------------+               |
|  | 1.29.0 |<----------------------------------------------------------+
|  +--------+  |
|              |
|              |
|  +--------+  |
|  | 1.30.0 |  |
|  +--------+  |
|              |
+--------------+

11.1.3. 维护发行版本的升级路径

如果使用基于版本的频道,则始终可以升级到频道中的最新版本,或头。例如,您可以在 stable-1.29 频道中从 1.29.0 升级到 1.29.2。

另外,在频道头,您可以升级到下一个 x.y 版本。例如,如果 1.29.2 是 stable-1.29 频道中的头,您可以从 1.29.2 升级到 1.30。这种跨通道更新不会自动完成,管理员需要通过更新订阅来手动切换频道。

11.1.4. 升级示例

11.1.4.1. 场景 1

在这种情况下,以下情况为 true:

  • 频道是 stable-1.28
  • 您切换到 stable 频道
  • 当前安装的版本为 1.28.0
  • 1.29.0 在 1.28.1 之前发布
  • 1.30.0 是 stable 频道的头部

在这种情况下, stable -1.28 到 1.29.0 的升级路径是 1.28.0 到 1.28.1 到 1.29.0。

     stable                    stable-1.28
+--------------+            +--------------+
|              |            |              |
|  +--------+  |            |  +--------+  |
|  | 1.28.0 |  |            |  | 1.28.0 |  |
|  +--------+  |            |  +--------+  |
|              |            |       |      |
|              |            |       |      |
|  +--------+  |            |       |      |
|  | 1.29.0 |<--------      |       v      |
|  +--------+  |     |      |  +--------+  |
|              |     +---------| 1.28.1 |  |
|              |            |  +--------+  |
|  +--------+  |            |              |
|  | 1.30.0 |  |            |              |
|  +--------+  |            |              |
|              |            |              |
+--------------+            +--------------+

11.1.4.2. 场景 2

在这种情况下,以下情况为 true:

  • 频道是 stable-1.29
  • 当前安装的版本为 1.29.0
  • 在向 stable 频道发布前, stable -1.29stable 频道已发布 1.29.1

在这种情况下,在 stable -1.29 上从 1.29.0 升级到 1.30.0 的升级路径是 1.29.0 到 1.29.1 到 1.30.0。

     stable                   stable-1.29
+--------------+           +--------------+
|              |           |              |
|  +--------+  |           |  +--------+  |
|  | 1.29.0 |  |           |  | 1.29.0 |  |
|  +--------+  |           |  +--------+  |
|              |           |       |      |
|              |           |       v      |
|  +--------+  |           |  +--------+  |
|  | 1.29.1 |  |           |  | 1.29.1 |  |
|  +--------+  |           |  +--------+  |
|              |           |       |      |
|              |           |       |      |
|  +--------+  |           |       |      |
|  | 1.30.0 |<---------------------+      |
|  +--------+  |           |              |
|              |           |              |
+--------------+           +--------------+

11.1.4.3. 场景 3

在这种情况下,以下情况为 true:

  • 频道是 stable-1.29
  • 您切换到 stable-1.30 频道
  • 当前安装的版本为 1.29.1
  • 1.29.1 是 stable-1.29 频道的头部

在这种情况下,在 stable-1.29 上从 1.29.1 升级到 1.30.0,本例中为 1.29.1 到 1.30.0。

   stable-1.29              stable-1.30
+--------------+         +--------------+
|              |         |              |
|  +--------+  |         |  +--------+  |
|  | 1.29.0 |  |    ------> | 1.30.0 |  |
|  +--------+  |    |    |  +--------+  |
|              |    |    |              |
|              |    |    |              |
|  +--------+  |    |    |              |
|  | 1.29.1 |-------+    |              |
|  +--------+  |         |              |
|              |         |              |
+--------------+         +--------------+
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.