- 微服务开发框架升级
- 添加Choerodon Chart仓库
- 升级register server
- 升级config server
- 升级manager service
- 升级asgard service
- 升级notify service
- 升级iam service
- 升级api gateway
- 升级gateway helper
- 升级oauth server
- 升级file service
- DevOps服务升级
- 升级devops service
- 升级gitlab service
- 敏捷管理升级
- 测试管理升级
- 知识管理升级
- 整合前端升级
微服务开发框架升级
请按以下顺序依次进行升级部署,请不要随意调整升级顺序。升级后可能数据库结构会发生改变,故不能进行版本回退。文档升级命令中的RELEASE NAME是在基于分步安装文档之上编写的,若你在安装时指定了其他RELEASE NAME,请以你安装时指定的RELEASE NAME为准。一键部署安装的请执行helm list命令查看RELEASE NAME。
添加Choerodon Chart仓库
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/helm repo update
从0.10版本开始微服务支持Oracle数据库,故一部分微服务参数配置将发生改变,升级时请注意设置。
升级register server
- 升级服务
helm upgrade register-server c7n/go-register-server \-f <(helm get values register-server) \--version 0.10.0
验证升级
- 验证命令
curl $(kubectl get svc register-server -o jsonpath="{.spec.clusterIP}" -n choerodon-devops-prod):8000/eureka/apps
- 出现以下类似信息即为成功升级
{"name": "go-register-server","instance": [{"instanceId": "192.168.3.19:go-register-server:8000","hostName": "192.168.3.19","app": "go-register-server","ipAddr": "192.168.3.19","status": "UP","overriddenstatus": "UNKNOWN","port": {"@enabled": true,"$": 8000},"securePort": {"@enabled": false,"$": 443},"countryId": 8,"dataCenterInfo": {"name": "MyOwn","@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"},"leaseInfo": {"renewalIntervalInSecs": 10,"durationInSecs": 90,"registrationTimestamp": 1528201698,"lastRenewalTimestamp": 1528201698,"evictionTimestamp": 0,"serviceUpTimestamp": 1528201698},"metadata": {"VERSION": "0.10.0"},"homePageUrl": "http://192.168.3.19:8000/","statusPageUrl": "http://192.168.3.19:8000/info","healthCheckUrl": "http://192.168.3.19:8000/health","vipAddress": "go-register-server","secureVipAddress": "go-register-server","isCoordinatingDiscoveryServer": true,"lastUpdatedTimestamp": 1528201698,"lastDirtyTimestamp": 1528201698,"actionType": "ADDED"}]}
升级config server
- 升级服务
helm upgrade config-server c7n/config-server \--set service.enable=true \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \-f <(helm get values config-server) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=config-server -o jsonpath="{.items[0].status.podIP}"):8011/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级manager service
- 获取上一次部署时的参数
helm get values manager-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade manager-service c7n/manager-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preInitDB.datasource.username=choerodon \--set preJob.preInitDB.datasource.password=password \-f <(helm get values manager-service) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=manager-service -o jsonpath="{.items[0].status.podIP}"):8964/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级asgard service
- 获取上一次部署时的参数
helm get values asgard-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade asgard-service c7n/asgard-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \--set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/asgard_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preInitDB.datasource.username=choerodon \--set preJob.preInitDB.datasource.password=password \--set env.open.CHOERODON_ASGARD_ISLOCAL=false \-f <(helm get values asgard-service) \--version 0.10.0
验证部署
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=asgard-service -o jsonpath="{.items[0].status.podIP}"):18081/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
升级notify service
从0.10版本开始notify-service需使用redis,请部署redis。
- 部署Redis
helm install c7n/redis \--set service.enabled=true \--version 0.1.0 \--name c7n-redis \--namespace c7n-system
- 获取上一次部署时的参数
helm get values notify-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade notify-service c7n/notify-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \--set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/notify_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preInitDB.datasource.username=choerodon \--set preJob.preInitDB.datasource.password=password \--set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \--set env.open.SPRING_REDIS_DATABASE=1 \--set service.enable=true \--set service.name=notify-service \--set ingress.enable=true \--set ingress.host=notify.example.choerodon.io \-f <(helm get values notify-service) \--version 0.10.0
验证部署
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=notify-service -o jsonpath="{.items[0].status.podIP}"):18086/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
升级iam service
- 获取上一次部署时的参数
helm get values iam-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade iam-service c7n/iam-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \--set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preInitDB.datasource.username=choerodon \--set preJob.preInitDB.datasource.password=password \-f <(helm get values iam-service) \--version 0.10.1
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=iam-service -o jsonpath="{.items[0].status.podIP}"):8031/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级api gateway
- 获取上一次部署时的参数
helm get values api-gateway
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade api-gateway c7n/api-gateway \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \-f <(helm get values api-gateway) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=api-gateway -o jsonpath="{.items[0].status.podIP}"):8081/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级gateway helper
- 获取上一次部署时的参数
helm get values gateway-helper
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade gateway-helper c7n/gateway-helper \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \-f <(helm get values gateway-helper) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=gateway-helper -o jsonpath="{.items[0].status.podIP}"):9181/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级oauth server
- 获取上一次部署时的参数
helm get values oauth-server
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade oauth-server c7n/oauth-server \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \-f <(helm get values oauth-server) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=oauth-server -o jsonpath="{.items[0].status.podIP}"):8021/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级file service
- 获取上一次部署时的参数
helm get values file-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade file-service c7n/file-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \-f <(helm get values file-service) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=file-service -o jsonpath="{.items[0].status.podIP}"):9091/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
DevOps服务升级
升级devops service
- 获取上一次部署时的参数
helm get values devops-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade devops-service c7n/devops-service \-f <(helm get values devops-service) \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set env.open.AGENT_VERSION="0.10.0" \--set env.open.TEMPLATE_VERSION_MICROSERVICE="0.10.0" \--set env.open.TEMPLATE_VERSION_MICROSERVICEFRONT="0.10.0" \--set env.open.TEMPLATE_VERSION_JAVALIB="0.10.0" \--version 0.10.4
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=devops-service -o jsonpath="{.items[0].status.podIP}"):8061/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
- 升级之后,请用平台 admin 用户登录平台,点击管理,使用api管理功能,然后在api测试里面选择devops-service和对应的版本0.10.4,用于给0.10.4版本以前的应用增加新的Webhook,具体api为
devops-service > devops-check-controler > 平滑升级接口:version: 填写0.10.0调用完之后可以查看devops-service的devops-check-log表里面的log字段查看平滑升级信息
升级gitlab service
- 获取上一次部署时的参数
helm get values gitlab-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade gitlab-service c7n/gitlab-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \-f <(helm get values gitlab-service) \--version 0.10.0
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=gitlab-service -o jsonpath="{.items[0].status.podIP}"):8071/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
敏捷管理升级
- 获取上一次部署时的参数
helm get values agile-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade agile-service c7n/agile-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \-f <(helm get values agile-service) \--set preJob.preInitDB.enable=true \--set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \--set env.open.SPRING_REDIS_DATABASE=4 \--version 0.10.1
验证升级
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=agile-service -o jsonpath="{.items[0].status.podIP}"):8379/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
测试管理升级
- 获取上一次部署时的参数
helm get values test-manager-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade test-manager-service c7n/test-manager-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \--set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preConfig.datasource.username=choerodon \--set preJob.preConfig.datasource.password=password \--set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/test_manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \--set preJob.preInitDB.datasource.username=choerodon \--set preJob.preInitDB.datasource.password=password \--set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \--set env.open.SPRING_REDIS_DATABASE=5 \-f <(helm get values test-manager-service) \--version 0.10.3
验证部署
- 验证命令
curl -s $(kubectl get po -n choerodon-devops-prod -l choerodon.io/release=test-manager-service -o jsonpath="{.items[0].status.podIP}"):8094/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
部署成功之后,需要进行数据升级,数据升级将会把执行逆向生成用例,不同文件夹下的相同用例将复制,并在每一个版本下生成一个临时文件夹,以下是修复步骤
- 进入
example.choerodon.io/#/iam/api-test选择test_manager_service->test-cycle-controller
- 进入
点击
/v1/projects/{project_id}/cycle/fix右侧按钮进入API测试页面
填入一个存在的project_id点击发送即可,等待日志中出现
fix data successful,数据即升级成功,如果日志中抛出了异常,则重试即可。
知识管理升级
- 升级XWiki
XWiki-0.10.0版本需要依赖Choerodon微服务框架的0.10.0版本功能,在升级XWiki之前,请确保Choerodon微服务框架已经升级到0.10.0版本。
- 使用admin用户登录wiki系统(直接访问wiki系统的域名),然后点击顶部导航栏右侧的齿轮(设置)按钮,进入系统设置: 设置->内容->导入 ,进入到导入的设置页,然后上传
Choerodon-wiki-0.10.0-update.xar更新包 ,下载地址。 - 上传成功之后,点击刚上传的xar包,在页面右侧会出现需要导入的包的内容,滚动页面到最下方,点击
导入按钮,等待导入完成即可。 - 在wiki系统部署时绑定的的存储卷目录下,找到/data下的
xwiki.properties文件,然后编辑文件,在最下面添加一下两个参数。choerodon.request.api.url=http://localhost:8080注意:域名需要修改为Choerodon平台网关的域名地址。choerodon.request.front.url=http://localhost:8090注意:域名需要修改为Choerodon平台的前端地址。 - 替换wiki的存储卷目录
/data/extension/repository/org%2Exwiki%2Econtrib%2Eoidc%3Aoidc-authenticator/1%2E7%2E1里面的jar包 ,下载地址。 - 修改XWiki镜像为
registry.cn-hangzhou.aliyuncs.com/choerodon-tools/xwiki:10.4-mysql-tomcat-0.10.0,重启XWiki。- 获取上一次部署时的参数
helm get values wiki-service
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade wiki-service c7n/wiki-service \--set env.open.JAVA_OPTS="-Xms256m -Xmx512m" \-f <(helm get values wiki-service) \--version 0.10.1
更新旧数据
- 进入
Choerodon平台,选择菜单API管理下的API测试。 - 选择微服务
wiki-service,打开wiki-scanning-controller,使用更新wiki系统主页接口,点击搜索按钮跳转页面。 - 点击
接口测试,点击发送之后,wiki系统就会将已经存在的空间首页替换为0.10.0版本最新的内容。
- 进入
整合前端升级
- 获取上一次部署时的参数
helm get values choerodon-front
- 根据上一次部署时的参数,替换下面参数,升级服务
helm upgrade choerodon-front c7n/choerodon-front \--set preJob.preConfig.db.host=c7n-mysql.c7n-system.svc \--set preJob.preConfig.db.port=3306 \--set preJob.preConfig.db.dbname=iam_service \--set preJob.preConfig.db.username=choerodon \--set preJob.preConfig.db.password=password \--set preJob.preConfig.db.enabledelete=true \--set preJob.preConfig.db.upattrs="sort\,parent_id" \--set env.open.PRO_WEBSOCKET_SERVER="ws://notify.example.choerodon.io" \-f <(helm get values choerodon-front) \--version 0.10.0
验证升级
- 验证命令
curl $(kubectl get svc choerodon-front -o jsonpath="{.spec.clusterIP}" -n choerodon-devops-prod)
- 出现以下类似信息即为成功升级
<!DOCTYPE html><html><head><meta http-equiv="Content-type"content="text/html; charset=utf-8"><title>Choerodon</title><link rel="shortcut icon"href="favicon.ico"></head><body><div id="app"></div><script type="text/javascript"src="app/vendor_19e4b950.js"></script><script type="text/javascript"src="app/main_19e4b950.js"></script></body></html>
