微服务开发框架升级
请按以下顺序依次进行升级部署,请不要随意调整升级顺序。升级后可能数据库结构会发生改变,故不能进行版本回退。文档升级命令中的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
注意事项
- 如果报错提示job已存在,直接执行下述命令删除历史job即可
kubectl delete job --all -n c7n-system
升级register server
- 升级服务
helm upgrade register-server c7n/go-register-server \
-f <(helm get values register-server) \
--set service.enabled=true \
--set rbac.craete=true \
--version 0.18.0
验证升级
- 验证命令
curl $(kubectl get svc register-server -o jsonpath="{.spec.clusterIP}" -n c7n-system):8000/eureka/apps
- 出现以下类似信息即为成功升级
{
"name": "go-register-server",
"instance": [
{
"instanceId": "10.233.64.95:go-register-server:8000",
"hostName": "10.233.64.95",
"app": "go-register-server",
"ipAddr": "10.233.64.95",
"status": "UP",
...
"metadata": {
"VERSION": "0.18.0"
},
}
]
}
升级manager service
- 升级服务
helm upgrade manager-service c7n/manager-service \
-f <(helm get values manager-service) \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=manager-service -o jsonpath="{.items[0].status.podIP}"):8964/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级asgard service
- 升级服务
*注意redis地址可能是c7n-redis、redis或者其他,请根据部署时的实际情况替换
helm upgrade asgard-service c7n/asgard-service \
-f <(helm get values asgard-service) \
--set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
--set env.open.SPRING_REDIS_PORT=6379 \
--set env.open.SPRING_REDIS_DATABASE=7 \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=asgard-service -o jsonpath="{.items[0].status.podIP}"):18081/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级notify service
- 升级服务
helm upgrade notify-service c7n/notify-service \
-f <(helm get values notify-service) \
--set service.enabled=true \
--set ingress.enabled=true \
--version 0.18.0
验证部署
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=notify-service -o jsonpath="{.items[0].status.podIP}"):18086/actuator/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
升级iam service
- 升级服务
helm upgrade iam-service c7n/iam-service \
-f <(helm get values iam-service) \
--version 0.18.4
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=iam-service -o jsonpath="{.items[0].status.podIP}"):8031/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级api gateway
- 注意事项
*升级前请先确定数据库地址一般情况下为c7n-mysql及c7n-redis,可能存在其他情况,请根据部署时的实际情况替换。一般情况下可以通过以下命令获取地址:
kubectl get svc -n c7n-system
- 升级服务
helm upgrade api-gateway c7n/api-gateway \
-f <(helm get values api-gateway) \
--set service.enabled=true \
--set ingress.enabled=true \
--set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
--set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
--set env.open.SPRING_DATASOURCE_PASSWORD=password \
--set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
--set env.open.SPRING_REDIS_PORT=6379 \
--set env.open.SPRING_REDIS_DATABASE=4 \
--set env.SPRING_CACHE_MULTI_L1_ENABLED=true \
--set env.SPRING_CACHE_MULTI_L2_ENABLED=false \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=api-gateway -o jsonpath="{.items[0].status.podIP}"):8081/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
删除gateway helper
- 升级服务
helm delete --purge gateway-helper
升级oauth server
- 升级服务
helm upgrade oauth-server c7n/oauth-server \
-f <(helm get values oauth-server) \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=oauth-server -o jsonpath="{.items[0].status.podIP}"):8021/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级file service
- 升级服务
helm upgrade file-service c7n/file-service \
-f <(helm get values file-service) \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=file-service -o jsonpath="{.items[0].status.podIP}"):9091/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
DevOps服务升级
升级devops service
从0.18.13以下的版本升级到0.18.13以及以上的版本时,为了在gitlab-ci中使用每个项目单独的用户去推送镜像,需要手动调用api去同步创建harbor用户,请使用管理员用户登陆平台,在管理界面的平台服务->平台接口->devops-service->devops-check-controller里面调用数据修复接口,参数传入为0.18.13,记得检查gitlab-ci.yaml文件内docker login时的参数是否为DOCKER_USERNAME和DOCKER_PASSWORD
从0.17开始,开发管理可以选择接入SonarQube进行代码质量管理。如果不需要进行代码质量管理在kubernetes控制节点的服务器中执行如下命令: kubectl edit cm devops-service -n c7n-system
如果存在service.sonarqube.url
的内容删除即可。
- 不需要代码质量管理执行如下命令升级服务:
helm upgrade devops-service c7n/devops-service \
--set env.open.TEMPLATE_VERSION="0.17.0" \
--set env.open.AGENT_VERSION="0.18.1" \
--set service.enabled=true \
--set ingress.enabled=true \
-f <(helm get values devops-service) \
--version 0.18.18
- 如果需要代码质量管理,请参考安装文档安装Sonarqube后再根据Sonarqube的参数执行如下命令进行升级:
helm upgrade devops-service c7n/devops-service \
--set env.open.TEMPLATE_VERSION="0.17.0" \
--set env.open.AGENT_VERSION="0.18.1" \
--set service.enabled=true \
--set ingress.enabled=true \
--set env.open.SERVICES_SONARQUBE_URL="http://sonarqube.example.choerodon.io" \
--set env.open.SERVICES_SONARQUBE_USERNAME="admin" \
--set env.open.SERVICES_SONARQUBE_PASSWORD="admin" \
-f <(helm get values devops-service) \
--version 0.18.18
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=devops-service -o jsonpath="{.items[0].status.podIP}"):8061/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级gitlab service
- 升级gitlab-service
helm upgrade gitlab-service c7n/gitlab-service \
-f <(helm get values gitlab-service) \
--version 0.18.1
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=gitlab-service -o jsonpath="{.items[0].status.podIP}"):8071/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级workflow service
- 升級前在c7n-system命名空间下查询name为workflow-service的configMap
kubectl edit configMap workflow-service -n c7n-system
找到choerodon.saga.comsumer.enabled属性,如果值为false,请改为true,然后在升级
- 升级workflow-service
helm upgrade workflow-service c7n/workflow-service \
-f <(helm get values workflow-service) \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=workflow-service -o jsonpath="{.items[0].status.podIP}"):8066/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
敏捷管理升级
升级agile service
- 升级服务
helm upgrade agile-service c7n/agile-service \
-f <(helm get values agile-service) \
--version 0.18.3
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=agile-service -o jsonpath="{.items[0].status.podIP}"):8379/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级state machine service
- 升级服务
helm upgrade state-machine-service c7n/state-machine-service \
-f <(helm get values state-machine-service) \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=state-machine-service -o jsonpath="{.items[0].status.podIP}"):8385/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级issue service
- 升级服务
helm upgrade issue-service c7n/issue-service \
-f <(helm get values issue-service) \
--version 0.18.0
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=issue-service -o jsonpath="{.items[0].status.podIP}"):8381/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
升级foundation service
- 升级服务
helm upgrade foundation-service c7n/foundation-service \
-f <(helm get values foundation-service) \
--version 0.18.1
验证部署
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=foundation-service -o jsonpath="{.items[0].status.podIP}"):8387/actuator/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
测试管理升级
- 升级服务
helm upgrade test-manager-service c7n/test-manager-service \
-f <(helm get values test-manager-service) \
--version 0.18.0
验证部署
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=test-manager-service -o jsonpath="{.items[0].status.podIP}"):8094/actuator/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
知识管理升级
升级XWiki
XWiki-0.18.0版本需要依赖Choerodon微服务框架的0.18.0版本功能,在升级XWiki之前,请确保Choerodon微服务框架已经升级到0.18.0版本。
- 升级服务
本次升级新增了minio配置用于wiki文档迁移至知识管理。
helm upgrade xwiki c7n/xwiki \
-f <(helm get values xwiki) \
--set env.MINIO_ENDPOINT="http://minio.example.choerodon.io" \
--set env.MINIO_ACCESSKEY=accessKey \
--set env.MINIO_SECRETKEY=secretKey \
--version 0.18.1
参数名含义env.MINIO_ENDPOINTminio地址,用于迁移时上传附件env.MINIO_ACCESSKEYminio账号env.MINIO_SECRETKEYminio密码
- 验证部署
登陆xwiki可以正常访问。
升级wiki service
- 升级服务
helm upgrade wiki-service c7n/wiki-service \
-f <(helm get values wiki-service) \
--version 0.18.1
验证部署
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=wiki-service -o jsonpath="{.items[0].status.podIP}"):9991/actuator/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
升级knowledgebase-service
- 升级服务
新增WIKI_URL和WIKI_TOCKEN用于迁移xwiki文章。迁移脚本会在服务部署成功后自动运行,可以查看日志获取迁移进度,当日志输出Finished to sync wiki to new knowledgebase!
则迁移wiki文章完成。而后会进行问题关联文档的修复,可以查看agile-service服务日志获取修复结果。
helm upgrade knowledgebase-service c7n/knowledgebase-service \
-f <(helm get values knowledgebase-service) \
--set env.open.SERVICES_ATTACHMENT_URL="http://minio.example.choerodon.io/knowledgebase-service/" \
--set env.open.WIKI_URL="http://wiki.example.com" \
--set env.open.WIKI_TOKEN="Choerodon" \
--version 0.18.6
参数名含义env.open.SERVICES_ATTACHMENT_URLminio地址,地址中knowledgebase-service为minio bucketenv.open.WIKI_URLwiki地址env.open.WIKI_TOKENwiki OIDC TOKEN,必须与xwiki中的env.OIDC_WIKI_TOKEN参数值和wiki-service中的env.open.WIKI_TOKEN参数值一致
验证部署
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=knowledgebase-service -o jsonpath="{.items[0].status.podIP}"):8281/actuator/health | jq -r .status
- 出现以下类似信息即为成功部署
UP
整合前端升级
- 升级服务
helm upgrade choerodon-front c7n/choerodon-front \
-f <(helm get values choerodon-front) \
--set service.enabled=true \
--set ingress.enabled=true \
--version 0.18.7
验证升级
- 验证命令
curl $(kubectl get svc choerodon-front -o jsonpath="{.spec.clusterIP}" -n c7n-system)
- 出现以下类似信息即为成功升级
<!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>