5.4 KiB
5.4 KiB
| 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