微服务开发框架升级

请按以下顺序依次进行升级部署,请不要随意调整升级顺序。升级后可能数据库结构会发生改变,故不能进行版本回退。文档升级命令中的RELEASE NAME是在基于分步安装文档之上编写的,若你在安装时指定了其他RELEASE NAME,请以你安装时指定的RELEASE NAME为准。一键部署安装的请执行helm list命令查看RELEASE NAME。

添加Choerodon Chart仓库

  1. helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
  2. helm repo update

注意事项

  • 如果报错提示job已存在,直接执行下述命令删除历史job即可
  1. kubectl delete job --all -n c7n-system

升级register server

  • 升级服务
  1. helm upgrade register-server c7n/go-register-server \
  2. -f <(helm get values register-server) \
  3. --set service.enabled=true \
  4. --set rbac.craete=true \
  5. --version 0.17.0
  • 验证升级

    • 验证命令
  1. curl $(kubectl get svc register-server -o jsonpath="{.spec.clusterIP}" -n c7n-system):8000/eureka/apps
  • 出现以下类似信息即为成功升级
  1. {
  2. "name": "go-register-server",
  3. "instance": [
  4. {
  5. "instanceId": "10.233.64.95:go-register-server:8000",
  6. "hostName": "10.233.64.95",
  7. "app": "go-register-server",
  8. "ipAddr": "10.233.64.95",
  9. "status": "UP",
  10. ...
  11. "metadata": {
  12. "VERSION": "0.17.0"
  13. },
  14. }
  15. ]
  16. }

升级manager service

  • 升级服务
  1. helm upgrade manager-service c7n/manager-service \
  2. -f <(helm get values manager-service) \
  3. --version 0.17.0
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

升级asgard service

  • 升级服务

*注意redis地址可能是c7n-redis、redis或者其他,请根据部署时的实际情况替换

  1. helm upgrade asgard-service c7n/asgard-service \
  2. -f <(helm get values asgard-service) \
  3. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
  4. --set env.open.SPRING_REDIS_PORT=6379 \
  5. --set env.open.SPRING_REDIS_DATABASE=7 \
  6. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

升级notify service

  • 升级服务
  1. helm upgrade notify-service c7n/notify-service \
  2. -f <(helm get values notify-service) \
  3. --set service.enabled=true \
  4. --set ingress.enabled=true \
  5. --version 0.17.1
  • 验证部署

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功部署
  1. UP

升级iam service

  • 升级服务
  1. helm upgrade iam-service c7n/iam-service \
  2. -f <(helm get values iam-service) \
  3. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

升级api gateway

  • 注意事项

*升级前请先确定数据库地址一般情况下为c7n-mysql及c7n-redis,可能存在其他情况,请根据部署时的实际情况替换。一般情况下可以通过以下命令获取地址:

  1. kubectl get svc -n c7n-system
  • 升级服务
  1. helm upgrade api-gateway c7n/api-gateway \
  2. -f <(helm get values api-gateway) \
  3. --set service.enabled=true \
  4. --set ingress.enabled=true \
  5. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  6. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
  7. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
  8. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
  9. --set env.open.SPRING_REDIS_PORT=6379 \
  10. --set env.open.SPRING_REDIS_DATABASE=4 \
  11. --set env.SPRING_CACHE_MULTI_L1_ENABLED=true \
  12. --set env.SPRING_CACHE_MULTI_L2_ENABLED=false \
  13. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

删除gateway helper

  • 升级服务
  1. helm delete --purge gateway-helper

升级oauth server

  • 升级服务
  1. helm upgrade oauth-server c7n/oauth-server \
  2. -f <(helm get values oauth-server) \
  3. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

升级file service

  • 升级服务
  1. helm upgrade file-service c7n/file-service \
  2. -f <(helm get values file-service) \
  3. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

DevOps服务升级

升级devops service

从0.17开始,开发管理可以选择接入SonarQube进行代码质量管理。如果不需要进行代码质量管理在kubernetes控制节点的服务器中执行如下命令: kubectl edit cm devops-service -n c7n-system如果存在service.sonarqube.url的内容删除即可。

  • 不需要代码质量管理执行如下命令升级服务:
  1. helm upgrade devops-service c7n/devops-service \
  2. --set env.open.TEMPLATE_VERSION="0.17.0" \
  3. --set env.open.AGENT_VERSION="0.17.0" \
  4. --set service.enabled=true \
  5. --set ingress.enabled=true \
  6. -f <(helm get values devops-service) \
  7. --version 0.17.2
  • 如果需要代码质量管理,请参考安装文档安装Sonarqube后再根据Sonarqube的参数执行如下命令进行升级:
  1. helm upgrade devops-service c7n/devops-service \
  2. --set env.open.TEMPLATE_VERSION="0.17.0" \
  3. --set env.open.AGENT_VERSION="0.17.0" \
  4. --set service.enabled=true \
  5. --set ingress.enabled=true \
  6. --set env.open.SERVICES_SONARQUBE_URL="https://sonarqube.example.choerodon.io" \
  7. --set env.open.SERVICES_SONARQUBE_USERNAME="admin" \
  8. --set env.open.SERVICES_SONARQUBE_PASSWORD="admin" \
  9. -f <(helm get values devops-service) \
  10. --version 0.17.2
  • 验证命令
  1. 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
  1. helm upgrade gitlab-service c7n/gitlab-service \
  2. -f <(helm get values gitlab-service) \
  3. --version 0.17.0
  • 验证升级

    • 验证命令
  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
  • 出现以下类似信息即为成功升级
  1. UP

升级workflow service

  • 升級前在c7n-system命名空间下查询name为workflow-service的configMap
  1. kubectl edit configMap workflow-service -n c7n-system

找到choerodon.saga.comsumer.enabled属性,如果值为false,请改为true,然后在升级

  • 升级workflow-service
  1. helm upgrade workflow-service c7n/workflow-service \
  2. -f <(helm get values workflow-service) \
  3. --version 0.17.0
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

敏捷管理升级

敏捷管理更新了数据库的链接方式,请务必确认数据库正确连接地址,可能是c7n-mysql.c7n-system.svc, mysql.c7n-system.svc或mysql中的任意一种,升级时注意替换相应的参数。

升级agile service

  • 升级服务
  1. helm upgrade agile-service c7n/agile-service \
  2. -f <(helm get values agile-service) \
  3. --version 0.17.5
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

升级state machine service

  • 升级服务
  1. helm upgrade state-machine-service c7n/state-machine-service \
  2. -f <(helm get values state-machine-service) \
  3. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

升级issue service

  • 升级服务
  1. helm upgrade issue-service c7n/issue-service \
  2. -f <(helm get values issue-service) \
  3. --version 0.17.1
  • 验证升级

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功升级
  1. UP

部署foundation service

  • 升级服务
  1. helm upgrade foundation-service c7n/foundation-service \
  2. -f <(helm get values foundation-service) \
  3. --version 0.17.2
  • 验证部署

    • 验证命令
  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
  • 出现以下类似信息即为成功部署
  1. UP

测试管理升级

  • 升级服务
  1. helm upgrade test-manager-service c7n/test-manager-service \
  2. -f <(helm get values test-manager-service) \
  3. --version 0.17.5
  • 验证部署

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功部署
  1. UP

知识管理升级

部署knowledgebase service

  • 创建knowledgebase_service数据库
  1. helm install c7n/mysql-client \
  2. --set env.MYSQL_HOST=c7n-mysql.c7n-system.svc \
  3. --set env.MYSQL_PORT=3306 \
  4. --set env.MYSQL_USER=root \
  5. --set env.MYSQL_PASS=password \
  6. --set env.SQL_SCRIPT="\
  7. CREATE DATABASE IF NOT EXISTS knowledgebase_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
  8. GRANT ALL PRIVILEGES ON knowledgebase_service.* TO choerodon@'%';\
  9. FLUSH PRIVILEGES;" \
  10. --version 0.1.0 \
  11. --name create-c7nknowledgebase-db \
  12. --namespace c7n-system
  • 部署服务
  1. helm install c7n/knowledgebase-service \
  2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  3. --set preJob.preConfig.datasource.username=choerodon \
  4. --set preJob.preConfig.datasource.password=password \
  5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/knowledgebase_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  6. --set preJob.preInitDB.datasource.username=choerodon \
  7. --set preJob.preInitDB.datasource.password=password \
  8. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/knowledgebase_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true" \
  9. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
  10. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
  11. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
  12. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
  13. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
  14. --set env.open.SERVICES_ATTACHMENT_URL="http://minio.example.choerodon.io/knowledgebase-service/" \
  15. --name knowledgebase-service \
  16. --version 0.17.3 \
  17. --namespace c7n-system

参数名含义service.enable是否创建servicepreJob.preConfig.datasource{}初始化配置所需manager_service数据库信息preJob.preInitDB.datasource{}初始化数据库所需数据库信息env.open.SPRING_DATASOURCE_URL数据库链接地址env.open.SPRING_DATASOURCE_USERNAME数据库用户名env.open.SPRING_DATASOURCE_PASSWORD数据库密码env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址env.open.SERVICES_ATTACHMENT_URLminio地址,地址中knowledgebase-service为minio bucket

  • 验证部署

    • 验证命令
  1. 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
  • 出现以下类似信息即为成功部署
  1. UP
  • 升级wiki service

    • 获取上一次部署时的参数
  1. helm get values wiki-service
  • 根据上一次部署时的参数,替换下面参数,升级服务
  1. helm upgrade wiki-service c7n/wiki-service \
  2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  3. --set preJob.preConfig.datasource.username=choerodon \
  4. --set preJob.preConfig.datasource.password=password \
  5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/wiki_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  6. --set preJob.preInitDB.datasource.username=choerodon \
  7. --set preJob.preInitDB.datasource.password=password \
  8. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
  9. -f <(helm get values wiki-service) \
  10. --version 0.17.1
  • 验证部署

    • 验证命令
  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
  1. - 出现以下类似信息即为成功部署<code>

UP

整合前端升级

  • 升级服务
  1. helm upgrade choerodon-front c7n/choerodon-front \
  2. -f <(helm get values choerodon-front) \
  3. --set service.enabled=true \
  4. --set ingress.enabled=true \
  5. --version 0.17.6
  • 验证升级

    • 验证命令
  1. curl $(kubectl get svc choerodon-front -o jsonpath="{.spec.clusterIP}" -n c7n-system)
  • 出现以下类似信息即为成功升级
  1. <!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>