从旧版本进行迁移

    KubeVela 的发布周期定为每隔 2-3 个月发布一个版本,我们将维护最近的 2 个版本。所以,我们强烈推荐你跟着社区的节奏一同升级,我们会严格遵循 定义的兼容性规则。

    警告

    注意: 升级到 v1.5.6 及以前的版本可能会触发应用重启,升级到 v1.5.7+ 可以保证已经正常运行的应用不受影响。

    1. 升级 CRD,请确保在升级 helm chart 之前先升级 CRD。
    1. 升级 kubevela chart
    1. helm repo update
    2. helm upgrade -n vela-system --install kubevela kubevela/vela-core --version 1.5.7 --wait
    1. 下载并升级对应的CLI
    1. curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.5.7
    1. 升级 VelaUX 或其他插件
    1. vela addon upgrade velaux --version 1.5.7

    从旧版本进行迁移 - 图2危险

    注意: 升级到该版本可能会触发应用重启。

    1. 升级 CRD,请确保在升级 helm chart 之前先升级 CRD。
    1. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.4/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
    2. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.4/charts/vela-core/crds/core.oam.dev_applications.yaml
    3. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.4/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
    4. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.4/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
    5. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.4/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml
    1. 升级 kubevela chart
    1. 下载并升级对应的CLI
    1. curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.4.11
    1. 升级 VelaUX 或其他插件
    1. vela addon upgrade velaux --version 1.4.7

    请注意,如果你使用的是 terraform 插件,你应该将 terraform 插件升级到 1.0.6+ 版本以及 vela-core 升级,你可以按照以下步骤进行操作:

    1. 升级 vela-core 到 v1.3.4+,所有现有的 Terraform 类型的应用程序在此过程中不会受到影响。
    2. 升级 terrorform 插件,否则新配置的 Terraform 类型的应用程序不会成功。

    注意: 升级到该版本可能会触发应用重启。

    1. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.3/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
    2. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.3/charts/vela-core/crds/core.oam.dev_applications.yaml
    3. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.3/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
    4. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.3/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
    5. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.3/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml
    1. 升级 kubevela chart
    1. helm repo update
    2. helm upgrade -n vela-system --install kubevela kubevela/vela-core --version 1.3.6 --wait
    1. 下载并升级对应的CLI
    1. 升级 VelaUX 或其他插件
    1. vela addon upgrade velaux --version 1.3.6

    请注意,如果你使用的是 terraform 插件,你应该将 terraform 插件升级到 1.0.6+ 版本以及 vela-core 升级,你可以按照以下步骤操作:

    1. 将 vela-core 升级到 v1.3.4+,所有现有的 Terraform 类型应用程序将不会在此过程中受到影响。
    2. 升级 terrorform 插件,否则新配置的 Terraform 类型的应用程序不会成功。

    危险

    注意: 升级到该版本可能会触发应用重启。

    1. 检查服务是否正常运行

    迁移前请确保你的所有服务都正常运行。

    1. $ kubectl get all -n vela-system
    2. NAME READY STATUS RESTARTS AGE
    3. pod/kubevela-cluster-gateway-5bff6d564d-rhkp7 1/1 Running 0 16d
    4. pod/kubevela-vela-core-b67b87c7-9w7d4 1/1 Running 1 16d
    5. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    6. service/kubevela-cluster-gateway-service ClusterIP 172.16.236.150 <none> 9443/TCP 16d
    7. service/vela-core-webhook ClusterIP 172.16.54.195 <none> 443/TCP 284d
    8. NAME READY UP-TO-DATE AVAILABLE AGE
    9. deployment.apps/kubevela-vela-core 1/1 1 1 284d

    此外,还需要检查所有 KubeVela 应用的状态,包括正常运行的插件。

    1. 将 CRD 更新到 v1.2.x 版本
    1. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_applications.yaml
    2. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
    3. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml
    4. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_envbindings.yaml
    5. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_healthscopes.yaml
    6. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_manualscalertraits.yaml
    7. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_policydefinitions.yaml
    8. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
    9. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_scopedefinitions.yaml
    10. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_traitdefinitions.yaml
    11. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_workflowstepdefinitions.yaml
    12. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml
    13. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.2/charts/vela-core/crds/standard.oam.dev_rollouts.yaml
    1. 执行升级命令

    升级系统到新版本:

    1. helm upgrade -n vela-system --install kubevela kubevela/vela-core --version 1.2.6 --wait

    将 CLI 升级到与核心版本对应的 v1.2.x 版本:

    1. 启用插件

    升级成功后,如果需要启用插件,用户可以通过以下方式启用插件:

    1. # View the list of addons
    2. vela addon list
    3. # Enable addon
    4. vela addon enable <addon name>

    从旧版本进行迁移 - 图5提示

    如果插件在升级前的版本中已经启用并且在使用中,则不需要此步骤.

    1. 更新 Custom Definition

    检查你的 Custom Definition 是否在新版本中正常工作,如果有任何问题,请尝试升级它们。如果你没有定义任何内容,则升级过程已经完成!

    1. 迁移的常见问题
    • Q:从1.1.x 版本升级到 1.2.x 版本后,申请状态变成workflowsuspending,使用vela workflow resume不起作用。
      • A:关于资源跟踪器机制的迁移。一般可以删除已有的 resourcetracker,之后可以使用vela workflow resume命令。
    • Q:为什么我的应用在升级后变成了 suspend 状态?