kubevela.github.io/i18n/zh/docusaurus-plugin-content-docs/current/platform-engineers/system-operation/1.2.5-upgrade-practice.md

5.4 KiB
Raw Blame History

title
Kubevela 1.1.5升级到1.2.5参考文档

一、前言

此文章为已部署业务应用的KubeVela由1.1.5升级到1.2.5的操作手册如果您当前KubeVela未部署业务应用并且未启用插件可以直接参照官方升级文档进行升级。

二、升级步骤

2.1 升级前准备

以下是升级前需要准备的检查项,可以按照自己实际情况对照

2.2 第一步 检查KubeVela服务

该步骤主要是检查KubeVela运行是否正常如果pod不为就绪状态则理论上应该禁止自动执行升级脚本。需要人工介入先修复KubeVela运行状态。

NAME                                            READY   STATUS    RESTARTS   AGE
pod/kubevela-cluster-gateway-5bff6d564d-rhkp7   1/1     Running   0          16d
pod/kubevela-vela-core-b67b87c7-9w7d4           1/1     Running   1          16d

NAME                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/kubevela-cluster-gateway-service   ClusterIP   172.16.236.150   <none>        9443/TCP   16d
service/vela-core-webhook                  ClusterIP   172.16.54.195    <none>        443/TCP    284d

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubevela-cluster-gateway   1/1     1            1           16d
deployment.apps/kubevela-vela-core         1/1     1            1           284d

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/kubevela-cluster-gateway-5bff6d564d   1         1         1       16d
replicaset.apps/kubevela-vela-core-569669cfb5         0         0         0       136d
replicaset.apps/kubevela-vela-core-75bcc6b64          0         0         0       226d
replicaset.apps/kubevela-vela-core-78cf7cb5c7         0         0         0       225d
replicaset.apps/kubevela-vela-core-b67b87c7           1         1         1       16d
replicaset.apps/kubevela-vela-core-cfc54f68f          0         0         0       223d
replicaset.apps/kubevela-vela-core-ff5fcbc44          0         0         0       284d

此外也需要检查开启的对应插件启用的application和workload状态是否正常。

2.3 第二步 更新CRD

将1.2.5版本的CRD更新到集群CRD列表如下

kubectl apply -f /path/to/your/crds/core.oam.dev_applicationrevisions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_applications.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_componentdefinitions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_definitionrevisions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_envbindings.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_healthscopes.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_manualscalertraits.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_policydefinitions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_resourcetrackers.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_scopedefinitions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_traitdefinitions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_workflowstepdefinitions.yaml
kubectl apply -f /path/to/your/crds/core.oam.dev_workloaddefinitions.yaml
kubectl apply -f /path/to/your/crds/standard.oam.dev_rollouts.yaml

2.4 第三步 执行升级命令

该步骤为升级KubeVela关键步骤执行命令如下

helm upgrade -n vela-system --install kubevela kubevela/vela-core --version 1.2.5 --wait

2.5 第四步 开启插件

升级成功后,如果有需要启用的插件可以自行使用如下方式开启

# 查看插件列表
vela addon list
# 启用插件
vela addon enable xxx

⚠️注意: 如果已经在升级前版本已经启用插件并使用,不需要执行此步骤

2.6 第五步 更新自定义definition

开启插件后将自定义的definition更新到KubeVela如果没有自定义definition可以跳过自此正常的升级流程完成

三、问题与解决

以下是在升级1.1.5到1.2.5过程中您可以遇到的问题与解决办法

  • Q: 1.1.5升级到1.2.5后application状态变为workflowsuspending使用workflow resume无效
  • A: 原因为rt已存在查看application的status可看到具体原因解决办法为删除rt后使用workflow resume xxx。
  • Q: workflowsuspending状态的业务application如何解决
  • A: 通过更新后apply状态变为running因此如果application的状态不影响业务流程的话可以在后续更新部署后自动解决。
  • Q: 使用的flux addon关联的application状态一直为workflowsuspending
  • A: 这个只能通过手动删除rt然后执行vela workflow resume才可以恢复一般不影响正常使用后续升级的时候再行恢复。
  • Q: 存量的rollout会存在更新组件部署失败的情况
  • A: 通过更换存量controllerrevision的ownereferences解决将controllerrevision指向application
  • Q: 更新definition文件发现没有生效
  • A: 需要修改flux的application去除componentDefinition和traitDefinition