升级 Registry

先决条件

  1. 的管理员权限。
  2. 旧插件是指 v4.1 及更早版本。
  3. 新插件是指 v4.2 及更高版本。

概述

根据 Registry 存储类型,将旧 Registry 插件升级到目标 Registry 插件。由于集群插件名称已更改,因此需要手动干预。

在下面的命令中,请将 <LEGACY-PLUGIN-NAME> 替换为 ACP v4.1 及更早版本中使用的 Registry 插件名称。

你可以通过检查现有的 Registry 插件资源来识别它(在 global 集群中执行):

kubectl get moduleplugins -n cpaas-system

升级步骤

环境检查和预处理

未安装旧插件

如果从未安装过旧插件,你只需从 [Marketplace/集群插件] 中清理旧插件:

# Execute in Global cluster
kubectl delete moduleplugins <LEGACY-PLUGIN-NAME>
kubectl get moduleconfig -l cpaas.io/module-name=<LEGACY-PLUGIN-NAME> -o name | xargs kubectl delete

已安装旧插件

如果旧插件已安装在任意集群中,请根据你的存储类型执行相应的迁移操作。

S3 存储迁移

特性:自动迁移数据,无需手动操作

操作步骤

  1. 备份旧插件配置:(在安装了旧插件的业务集群中执行)
    kubectl get clusterplugininstances <LEGACY-PLUGIN-NAME> -o yaml > backup-clusterplugininstances.yaml
  2. 卸载旧插件:(在 global 集群中执行)
    # Replace <CLUSTER-NAME> with actual cluster name which has the plugin installed
    kubectl get moduleinfo -l cpaas.io/cluster-name=<CLUSTER-NAME>,cpaas.io/module-name=<LEGACY-PLUGIN-NAME> -o name | xargs kubectl delete
  3. 安装新插件(在将安装该插件的业务集群中执行)
  • 编辑备份文件 backup-clusterplugininstances.yaml,将所有 <LEGACY-PLUGIN-NAME> 替换为 image-registry
  • 应用新配置:
    kubectl apply -f backup-clusterplugininstances.yaml
  1. 从 [Marketplace/集群插件] 中清理旧插件:(在 global 集群中执行)
    kubectl delete moduleplugins <LEGACY-PLUGIN-NAME>
    kubectl get moduleconfig -l cpaas.io/module-name=<LEGACY-PLUGIN-NAME> -o name | xargs kubectl delete

NFS 存储迁移

特性:需要手动保留 PV 并修改回收策略。

操作步骤

  1. 记录 PV 信息:(在安装了旧插件的业务集群中执行)
    OLD_PV=$(kubectl get pvc <LEGACY-PLUGIN-NAME> -n cpaas-system -o jsonpath='{.spec.volumeName}')
    echo "Old PV Name: $OLD_PV"
  2. 修改 PV 回收策略:(在安装了旧插件的业务集群中执行)
    kubectl patch pv $OLD_PV -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
  3. 备份旧插件配置(同 S3 第 1 步)
  4. 卸载旧插件(同 S3 第 2 步)
  5. 释放 PV 绑定:(在安装了旧插件的业务集群中执行)
    kubectl patch pv $OLD_PV -p '{"spec":{"claimRef":null}}'
  6. 安装新插件(重要:必须为新插件设置 config.persistence.volumeName,以保留旧数据)
  • 编辑配置文件 backup-clusterplugininstances.yaml,设置 config.persistence.volumeName: <OLD_PV>
  • 应用配置(同 S3 第 3 步)
  1. 从 [Marketplace/集群插件] 中清理旧插件(同 S3 第 4 步)

本地存储迁移

特性:需要手动复制数据

操作步骤

  1. 备份旧插件配置(同 S3 第 1 步)
  2. 卸载旧插件(同 S3 第 2 步)
  3. 安装新插件(同 S3 第 3 步)
  4. 数据迁移:
  • 使用 ssh 登录到旧插件 Pod 所在节点,将旧目录中的数据复制到新目录,并保留所有文件权限:
    sudo cp -a /cpaas/<LEGACY-PLUGIN-NAME>/* /cpaas/image-registry/
  1. 从 [Marketplace/集群插件] 中清理旧插件(同 S3 第 4 步)