本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

升级 Longhorn Manager

建议在执行升级之前创建一个 Longhorn 系统备份。这确保所有关键资源,如卷和备份镜像,都已备份,并且在出现任何问题时可以恢复。

从 v1.10.x 升级

SUSE Storage 仅支持从 v1.10.x 升级到 v1.11。对于其他版本,请先升级到 v1.10.x。

对于在作为 Rancher 应用安装的 SUSE Storage 进行隔离升级时,您需要修改镜像名称并删除注册表 URL 部分。

对于在作为 Rancher 应用安装的 SUSE Storage 进行隔离升级时,您需要修改镜像名称并删除注册表 URL 部分。例如,镜像 registry.example.com/longhorn/longhorn-manager:v1.11.2 在 Longhorn 镜像部分更改为 longhorn/longhorn-manager:v1.11.2。有关更多信息,请参见隔离安装步骤 这里

准备升级

当前默认的 StorageClass 具有以下参数:

parameters:
  numberOfReplicas: <user specified replica count, 3 by default>
  staleReplicaTimeout: "30"
  fromBackup: ""
  baseImage: ""

升级

在升级之前始终备份卷。如果出现任何问题,您可以使用备份恢复卷。

使用 SUSE Rancher Prime UI 升级

对于由 SUSE Rancher Prime 管理的 Kubernetes 集群,您可以通过更新储存库以引用更新的 Helm 图表版本来升级 SUSE Storage APP。

以下过程描述了如何在 SUSE Rancher Prime 上升级 SUSE Storage APP。

  1. 转到 APP > 储存库

  2. 单击*创建*。

  3. 选择 OCI 储存库 作为目标。

  4. 为储存库提供一个名称,例如 suse-storage

  5. OCI 储存库主机 URL 字段中输入:

    oci://dp.apps.rancher.io/charts/suse-storage

    添加储存库
  6. 点击 创建 按钮。

  7. 验证储存库是否已成功添加。

    储存库已添加
  8. 前往 APP > 图表 并找到 suse-storage 图表。

    查找图表
  9. 点击图表,然后点击 安装

    安装图表
  10. 在下一页,将 global.imagePullSecrets 设置为 application-collection,然后点击 安装

    请参考 身份验证文档 进行凭证设置。

    global:
      cattle:
        windowsCluster:
          defaultSetting:
            systemManagedComponentsNodeSelector: kubernetes.io/os:linux
            taintToleration: cattle.io/os=linux:NoSchedule
          enabled: false
          nodeSelector:
            kubernetes.io/os: linux
          tolerations:
            - effect: NoSchedule
              key: cattle.io/os
              operator: Equal
              value: linux
      imagePullSecrets: [application-collection]
      imageRegistry: ''
  11. 这将升级 suse-storage 1.11

    更新储存库
  12. 升级后,前往 APP > 储存库

    对于早于 v2.13 的 SUSE Rancher Prime 版本,请按照以下步骤操作:
    1. 选择 suse-storage 储存库,点击三点菜单,然后选择 编辑配置

    2. *解决方法:*将 URL 更新为 oci://dp.apps.rancher.io/charts/suse-storage:1.11.2 以确保版本被检测。

    3. 储存库应已成功更新。

      更新储存库
    4. 前往 APP > 已安装 APP

    5. longhorn-system 名称空间中,查看 可升级 列,寻找一个黄色高亮的 1.11.2 标签。

      可升级版本
    6. 点击黄色的 1.11.2 标签以打开升级页面。

      升级页面
    7. 单击*下一步*。

    8. 确保 global.imagePullSecrets 设置为 application-collection,然后点击 升级

      升级进度
  13. 前往 APP > 图表 并选择 suse-storage 图表。

  14. 图表版本 面板中选择所需的升级版本。

    在 Rancher 2.13+ 中更新储存库
  15. 点击 升级到此版本

  16. 升级完成后,验证 suse-storage 图表版本是否更新为 1.11.2

    升级成功

使用 Helm 升级

升级 SUSE Storage Helm 图表涉及将您的部署更新到较新版本或在 Longhorn 社区镜像和 SUSE Storage 镜像之间切换。

升级的一般 Helm 命令是:

helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
  --namespace longhorn-system \
  --version <version> \ # Replace with the version you would like to upgrade to
  --set global.imagePullSecrets=<PULL_IMAGE_SECRET> \
  -f values.yaml

要创建一个密钥,请遵循 AppCo 文档

或者,如果在没有特定 values.yaml 文件的情况下升级并仅更改版本:

helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
  --namespace longhorn-system \
  --version <version> \ # Replace with the version you would like to upgrade to
  --set global.imagePullSecrets=<PULL_IMAGE_SECRET>
  • 升级路径:请参考官方 SUSE Storage 升级文档 以获取特定版本到版本的升级路径、前提条件和升级后验证步骤。这对于确保顺利升级和数据完整性非常重要。

  • 配置更改:如果您有自定义配置,请确保将其迁移到新图表版本,并与任何默认更改合并。

使用 Fleet 升级

在您的 GitOps 储存库的 helm.version YAML 文件中更新 fleet 的值。

helm:
  repo: https://charts.longhorn.io
  chart: longhorn
  version: v1.11.2 # Replace with the SUSE Storage version you would like to upgrade to
  releaseName: longhorn

使用 Flux 升级

在您的 GitOps 储存库的 spec.chart.spec.version YAML 文件中更新 HelmRelease 的值。

spec:
  chart:
    spec:
      chart: longhorn
      reconcileStrategy: ChartVersion
      sourceRef:
        kind: HelmRepository
        name: longhorn
      version: v1.11.2 # Replace with the SUSE Storage version you would like to upgrade to

使用 Argo CD 升级

在您的 GitOps 储存库的 targetRevision YAML 文件中更新 Application 的值。

spec:
  project: default
  sources:
    - chart: longhorn
      repoURL: https://charts.longhorn.io
      targetRevision: v1.11.2 # Replace with the SUSE Storage version you would like to upgrade to

然后等待所有的 pod 变为运行状态,并且 SUSE Storage UI 正常工作。例如:

$ kubectl -n longhorn-system get pod
NAME                                                  READY   STATUS    RESTARTS      AGE
engine-image-ei-4dbdb778-nw88l                        1/1     Running   0             4m29s
longhorn-ui-b7c844b49-jn5g6                           1/1     Running   0             75s
longhorn-manager-z2p8h                                1/1     Running   0             71s
instance-manager-b34d5db1fe1e2d52bcfb308be3166cfc     1/1     Running   0             65s
longhorn-driver-deployer-6bd59c9f76-jp6pg             1/1     Running   0             75s
engine-image-ei-df38d2e5-zccq5                        1/1     Running   0             65s
csi-snapshotter-588457fcdf-h2lgc                      1/1     Running   0             30s
csi-resizer-6d8cf5f99f-8v4sp                          1/1     Running   1 (30s ago)   37s
csi-snapshotter-588457fcdf-6pgf4                      1/1     Running   0             30s
csi-provisioner-869bdc4b79-7ddwd                      1/1     Running   1 (30s ago)   44s
csi-snapshotter-588457fcdf-p4kkn                      1/1     Running   0             30s
csi-attacher-7bf4b7f996-mfbdn                         1/1     Running   1 (30s ago)   50s
csi-provisioner-869bdc4b79-4dc7n                      1/1     Running   1 (30s ago)   43s
csi-resizer-6d8cf5f99f-vnspd                          1/1     Running   1 (30s ago)   37s
csi-attacher-7bf4b7f996-hrs7w                         1/1     Running   1 (30s ago)   50s
csi-attacher-7bf4b7f996-rt2s9                         1/1     Running   1 (30s ago)   50s
csi-resizer-6d8cf5f99f-7vv89                          1/1     Running   1 (30s ago)   37s
csi-provisioner-869bdc4b79-sn6zr                      1/1     Running   1 (30s ago)   43s
longhorn-csi-plugin-b2zzj                             2/2     Running   0             24s

接下来,升级 Longhorn Engine