微服务开发框架升级
添加Choerodon Chart仓库
在0.22将helm2升级到helm3,后续不再支持helm2。
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm repo update
服务列表
在0.22版本更换框架为hzero开源框架,对c7n服务进行了拆分了重构,c7n原框架服务替换为hzero框架对应服务,数据库也进行了相应更换。
服务类别 | 原服务名 | 新服务名 | 原数据库 | 新数据库 | 服务是否变更 |
---|---|---|---|---|---|
框架基础服务 | api-gateway | hzero-gateway | base_service | hzero_platform | 是 |
框架基础服务 | oauth-server | hzero-oauth | base_service | hzero_platform | 是 |
框架基础服务 | go-register-server | hzero-register | - | - | 是 |
框架基础服务 | asgard-service | hzero-asgard | asgard_service | asgard_service | 是 |
框架基础服务 | file-service | hzero-file | - | hzero_file | 是 |
框架基础服务 | notify-service | hzero-message | notify_service | hzero_message | 是 |
框架基础服务 | manager-service | hzero-admin | manager_service | hzero_admin | 是 |
框架基础服务 | base-service | hzero-iam | base_service | hzero_platform | 是 |
框架基础服务 | base-service | hzero-platform | base_service | hzero_platform | 是 |
DevOps服务 | devops-service | devops-service | devops_service | devops_service | 否 |
DevOps服务 | workflow-service | workflow-service | workflow_service | workflow_service | 否 |
DevOps服务 | gitlab-service | gitlab-service | - | - | 否 |
敏捷服务 | agile-service | agile-service | agile_service | agile_service | 否 |
敏捷服务 | test-manager-service | test-manager-service | test_manager_service | test_manager_service | 否 |
敏捷服务 | knowledgebase-service | knowledgebase-service | knowledgebase_service | knowledgebase_service | 否 |
数据备份
- 数据库备份
各服务helm配置备份
for name in $(helm list | awk '{print $1}' | grep -v NAME) ; do helm get values $name > $name.yaml; done
删除旧版猪齿鱼框架服务
因为此次升级需要更换框架服务,需删掉之前服务升级。
helm delete --purge base-service
helm delete --purge api-gateway
helm delete --purge file-service
helm delete --purge manager-service
helm delete --purge notify-service
helm delete --purge oauth-server
helm delete --purge register-server
helm delete --purge asgard-service
升级 helm
因为从 0.22 版本开始支持 helm3,所以升级前还需要将 helm2 实例升级到 helm3 实例。
下载 helm3 客户端
下载 helm3 压缩包
curl -L -o helm-v3.2.4-linux-amd64.tar.gz https://file.choerodon.com.cn/kubernetes-helm/v3.2.4/helm-v3.2.4-linux-amd64.tar.gz
解压压缩包(以linux-amd64为例)
tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
将文件移动到PATH目录中,并重命名为 helm3(以linux-amd64为例)
sudo mv linux-amd64/helm /usr/bin/helm3
配置 helm3 客户端
安装 helm3 的 2to3 插件
helm3 plugin install https://github.com/helm/helm-2to3
添加默认仓库
helm3 repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm3 repo update
迁移 helm2 实例
- 验证所有示例是否都能迁移
for r in $(helm list | awk '{print $1}' | grep -v NAME); do helm3 2to3 convert $r --dry-run; done
- 迁移实例
for r in $(helm list | awk '{print $1}' | grep -v NAME); do helm3 2to3 convert $r; done
- 清理 helm2 实例
helm3 2to3 cleanup
- 最后替换 helm3 替换 helm
# which helm
/usr/bin/helm
# mv /usr/bin/helm3 /usr/bin/helm
mv:是否覆盖"/usr/bin/helm"? y
# helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}
创建数据库
开始进行升级部署前请先备份好数据库!
请按以下顺序依次进行升级部署,请不要随意调整升级顺序。升级后可能数据库结构会发生改变,故不能进行版本回退。文档升级命令中的RELEASE NAME是在基于分步安装文档之上编写的,若你在安装时指定了其他RELEASE NAME,请以你安装时指定的RELEASE NAME为准。一键部署安装的请执行helm list命令查看RELEASE NAME。
编写参数配置文件
create-c7nfw-db.yaml
env:
MYSQL_HOST: c7n-mysql.c7n-system.svc
MYSQL_PORT: "3306"
MYSQL_USER: root
MYSQL_PASS: password
SQL_SCRIPT: |
CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS hzero_platform DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS hzero_message DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS hzero_file DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS hzero_monitor DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS hzero_admin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON hzero_platform.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON hzero_message.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON hzero_file.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON hzero_monitor.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON hzero_admin.* TO choerodon@'%';
FLUSH PRIVILEGES;
执行安装
helm upgrade --install create-c7nfw-db c7n/mysql-client \
-f create-c7nfw-db.yaml \
--version 0.1.0 \
--namespace c7n-system
数据迁移
编写配置文件
data-migration.yaml
env:
open:
# 默认迁移事件
MODULE_NAME: emailConfig
# asgard 数据库
SPRING_DATASOURCE_ASGARD_SERVICE_PASSWORD: password
SPRING_DATASOURCE_ASGARD_SERVICE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/asgard_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_ASGARD_SERVICE_USERNAME: choerodon
# 原base-service 数据库
SPRING_DATASOURCE_BASE_C7N_PASSWORD: password
SPRING_DATASOURCE_BASE_C7N_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/base_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_BASE_C7N_USERNAME: choerodon
# 初始化脚本地址
# 初始化数据库工具也进行了更新 不用指定特定数据库 只要ip只向hzero_...数据库
SPRING_DATASOURCE_C7N_PASSWORD: password
SPRING_DATASOURCE_C7N_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_C7N_USERNAME: choerodon
# 新hzero_message 数据库
SPRING_DATASOURCE_HZERO_MESSAGE_PASSWORD: password
SPRING_DATASOURCE_HZERO_MESSAGE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_message?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_HZERO_MESSAGE_USERNAME: choerodon
# 新hzero_platform 数据库
SPRING_DATASOURCE_HZERO_PLATFORM_PASSWORD: password
SPRING_DATASOURCE_HZERO_PLATFORM_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_HZERO_PLATFORM_USERNAME: choerodon
# 原notify_service 数据库
SPRING_DATASOURCE_NOTIFY_C7N_PASSWORD: password
SPRING_DATASOURCE_NOTIFY_C7N_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/notify_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_NOTIFY_C7N_USERNAME: choerodon
执行安装
helm upgrade --install data-migration c7n/data-migration \
-f data-migration.yaml \
--version 0.22.3 \
--namespace c7n-system
验证迁移
查询服务日志,出现以下日志,数据迁移成功!
txt 修复完成,正常退出
此次升级更换底层框架,数据迁移逻辑较为复杂,请注意迁移服务日志,如果出现异常信息,不能再继续升级。 迁移失败,会告知当前迁移步骤,更改
MODULE_NAME:
为当前失败步骤,尝试重复迁移。
部署 hzero register
编写参数配置文件
hzero-register.yaml
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
执行安装
helm upgrade --install hzero-register c7n/hzero-register \
-f hzero-register.yaml \
--version 0.22.2 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get svc hzero-register -o jsonpath="{.spec.clusterIP}" -n c7n-system):8001/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero admin
编写参数配置文件
hzero-admin.yaml
preJob:
preInitDB:
datasource:
url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
password: password
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
HZERO_AUTO_REFRESH_SWAGGER_ENABLE: true
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
部署服务
helm upgrade --install hzero-admin c7n/hzero-admin \
-f hzero-admin.yaml \
--version 0.22.3 \
--namespace c7n-system
验证部署
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-admin -o jsonpath="{.items[0].status.podIP}"):8063/actuator/health | jq -r .status
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero iam
编写参数配置文件
hzero-iam.yaml
preJob:
preInitDB:
datasource:
url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
password: password
driver: com.mysql.jdbc.Driver
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
CHOERODON_GATEWAY_URL: http://api.example.choerodon.io
SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
HZERO_EXPORT_COREPOOLSIZE: 1
部署服务
helm upgrade --install hzero-iam c7n/hzero-iam \
-f hzero-iam.yaml \
--version 0.22.4 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-iam -o jsonpath="{.items[0].status.podIP}"):8031/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero asgard
编写参数配置文件
hzero-asgard.yaml
preJob:
preInitDB:
datasource:
password: password
url: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
driver: com.mysql.jdbc.Driver
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
SPRING_DATASOURCE_PASSWORD: password
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system.svc:3306/asgard_service?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_REDIS_DATABASE: 7
SPRING_REDIS_HOST: c7n-redis.c7n-system.svc
SPRING_REDIS_PORT: 6379
升级服务
helm upgrade --install hzero-asgard c7n/hzero-asgard \
-f hzero-asgard.yaml \
--version 0.22.4 \
--namespace c7n-system
验证升级
- 验证命令
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-asgard -o jsonpath="{.items[0].status.podIP}"):8041/actuator/health | jq -r .status
- 出现以下类似信息即为成功升级
UP
部署 hzero swagger
若需了解项目详情及各项参数含义,请移步 choerodon/hzero-swagger。
编写参数配置文件
hzero-swagger.yaml
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
HZERO_OAUTH_URL: https://api.example.choerodon.io/oauth/oauth/authorize
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
部署服务
helm upgrade --install hzero-swagger c7n/hzero-swagger \
-f hzero-swagger.yaml \
--version 0.22.1 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-swagger -o jsonpath="{.items[0].status.podIP}"):8051/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero gateway
编写参数配置文件
hzero-gateway.yaml
env:
open:
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 4
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
ingress:
enabled: true
host: api.example.choerodon.io
部署服务
helm upgrade --install hzero-gateway c7n/hzero-gateway \
-f hzero-gateway.yaml \
--version 0.22.4 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-gateway -o jsonpath="{.items[0].status.podIP}"):8081/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero oauth
若需了解项目详情及各项参数含义,请移步 choerodon/hzero-oauth。
编写参数配置文件
hzero-oauth.yaml
env:
open:
# 如果使用https 该参数设置为true
HZERO_OAUTH_LOGIN_ENABLE_HTTPS: false
HZERO_OAUTH_LOGIN_SUCCESS_URL: http://app.example.choerodon.io
HZERO_OAUTH_LOGIN_DEFAULT_CLIENT_ID: choerodon
HZERO_GATEWAY_URL: http://api.example.choerodon.io
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 3
部署服务
helm upgrade --install hzero-oauth c7n/hzero-oauth \
-f hzero-oauth.yaml \
--version 0.22.2 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-oauth -o jsonpath="{.items[0].status.podIP}"):8021/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero platform
编写参数配置文件
hzero-platform.yaml
preJob:
preInitDB:
datasource:
url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
password: password
driver: com.mysql.jdbc.Driver
env:
open:
HZERO_PLATFORM_HTTP_PROTOCOL: http
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_platform?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
HZERO_EXPORT_COREPOOLSIZE: 1
部署服务
helm upgrade --install hzero-platform c7n/hzero-platform \
-f hzero-platform.yaml \
--version 0.22.2 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-platform -o jsonpath="{.items[0].status.podIP}"):8101/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero monitor
若需了解项目详情及各项参数含义,请移步 choerodon/hzero-monitor。
编写参数配置文件
hzero-monitor.yaml
preJob:
preInitDB:
datasource:
url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
password: password
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_monitor?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
部署服务
helm upgrade --install hzero-monitor c7n/hzero-monitor \
-f hzero-monitor.yaml \
--version 0.22.4 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-monitor -o jsonpath="{.items[0].status.podIP}"):8261/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero file
编写参数配置文件
hzero-file.yaml
preJob:
preInitDB:
datasource:
url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
password: password
driver: com.mysql.jdbc.Driver
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
MINIO_ACCESSKEY: accesskey
MINIO_ENDPOINT: https://minio.example.choerodon.io
MINIO_SECRETKEY: secretkey
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_file?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: 200MB
SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: 200MB
FILE_GATEWAY_URL: https://api.example.choerodon.io/hfle
部署服务
helm upgrade --install hzero-file c7n/hzero-file \
-f hzero-file.yaml \
--version 0.22.4 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-file -o jsonpath="{.items[0].status.podIP}"):8111/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
升级 hzero message
编写参数配置文件
hzero-message.yaml
preJob:
preInitDB:
datasource:
url: jdbc:mysql://c7n-mysql.c7n-system:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
username: choerodon
password: password
env:
open:
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://hzero-register.c7n-system:8000/eureka/
HZERO_WEBSOCKET_OAUTHURL: http://hzero-oauth/oauth/api/user
SPRING_REDIS_HOST: c7n-redis.c7n-system
SPRING_REDIS_PORT: 6379
# 此db不可更改
SPRING_REDIS_DATABASE: 1
SPRING_DATASOURCE_URL: jdbc:mysql://c7n-mysql.c7n-system:3306/hzero_message?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: choerodon
SPRING_DATASOURCE_PASSWORD: password
ingress:
enabled: true
host: notify.example.choerodon.io
部署服务
helm upgrade --install hzero-message c7n/hzero-message \
-f hzero-message.yaml \
--version 0.22.10 \
--namespace c7n-system
验证部署
- 验证命令
```
curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=hzero-message -o jsonpath="{.items[0].status.podIP}"):8121/actuator/health | jq -r .status
```
- 出现以下类似信息即为成功部署
```
UP
```
敏捷管理升级
开始进行升级部署前请先备份好数据库。
此次升级数据库初始化工具也进行了升级;更改了菜单数据初始化方式;本服务数据初始化使用preJob.preInitDB.datasource.xxx参数和之前一样; 菜单数据初始化使用preJob.preInitDB.datasources.platform.xxx,可支持框架数据和业务数据分库初始化菜单
升级 agile service
升级服务
helm upgrade agile-service c7n/agile-service \
-f <(helm get values agile-service --namespace c7n-system) \
--set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://hzero-register.c7n-system:8000/eureka/ \
--set preJob.preInitDB.datasource.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.username=choerodon \
--set preJob.preInitDB.datasources.platform.password=password \
--set preJob.preInitDB.datasources.platform.driver=com.mysql.jdbc.Driver \
--version 0.22.2 \
--namespace c7n-system
验证升级
- 验证命令
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
升级 test manager service
升级服务
helm upgrade test-manager-service c7n/test-manager-service \
-f <(helm get values test-manager-service --namespace c7n-system) \
--set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://hzero-register.c7n-system:8000/eureka/ \
--set preJob.preInitDB.datasource.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.username=choerodon \
--set preJob.preInitDB.datasources.platform.password=password \
--set preJob.preInitDB.datasources.platform.driver=com.mysql.jdbc.Driver \
--version 0.22.2 \
--namespace c7n-system
验证部署
- 验证命令
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
升级 knowledgebase service
请再次确认数据库已备份完成,再进行 knowledgebase service 的部署工作!!!
升级服务
helm upgrade knowledgebase-service c7n/knowledgebase-service \
-f <(helm get values knowledgebase-service --namespace c7n-system) \
--set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://hzero-register.c7n-system:8000/eureka/ \
--set preJob.preInitDB.datasource.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.username=choerodon \
--set preJob.preInitDB.datasources.platform.password=password \
--set preJob.preInitDB.datasources.platform.driver=com.mysql.jdbc.Driver \
--set env.open.SPRING_REDIS_HOST=c7n-redis.infrastructure.svc \
--set env.open.SPRING_REDIS_PORT=6379 \
--set env.open.SPRING_REDIS_DATABASE=14 \
--version 0.22.1 \
--namespace c7n-system
验证部署
- 验证命令
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
DevOps服务升级
升级gitlab service
升级gitlab-service
helm upgrade gitlab-service c7n/gitlab-service \
-f <(helm get values gitlab-service --namespace c7n-system) \
--set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://hzero-register.c7n-system:8000/eureka/ \
--version 0.22.1 \
--namespace c7n-system
验证升级
- 验证命令
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
升级workflow-service
helm upgrade workflow-service c7n/workflow-service \
--set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://hzero-register.c7n-system:8000/eureka/ \
-f <(helm get values workflow-service --namespace c7n-system) \
--version 0.22.2 \
--namespace c7n-system
验证升级
- 验证命令
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
升级devops service
升级devops-service:
helm upgrade devops-service c7n/devops-service \
--set env.open.AGENT_VERSION="0.22.3" \
--set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://hzero-register.c7n-system:8000/eureka/ \
--set env.opne.AGENT_SERVICEURL=ws://devops.example.choerodon.io/websocket \
--set preJob.preInitDB.datasource.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.url='jdbc:mysql://c7n-mysql.c7n-system.svc:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai' \
--set preJob.preInitDB.datasources.platform.username=choerodon \
--set preJob.preInitDB.datasources.platform.password=password \
--set preJob.preInitDB.datasources.platform.driver=com.mysql.jdbc.Driver \
-f <(helm get values devops-service --namespace c7n-system) \
--version 0.22.8 \
--namespace c7n-system
- 验证命令
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
- 数据迁移部分,请执行以下命令查看devops-service数据迁移的日志。见到”修复数据完成”字样则完成了数据迁移,否则出现异常则在总前端升级之后,去平台层手动调用接口重试数据迁移(请使用管理员用户登陆平台,在管理界面的平台服务->平台接口->devops-service->devops-check-controller里面调用数据修复接口/v1/upgrade,参数传入为0.21.0)。
kubectl logs -n c7n-system $(kubectl get po -n c7n-system -l choerodon.io/release=devops-service -o jsonpath="{.items[0].metadata.name}") -f | grep Check
自Choerodon 0.22.0版本开始,C7N agent中helm组件已由
V2
升级至V3
,对集群中实例进行helm操作,helm指令需为 v3.2.4 版本。 若未达到要求版本,请先更新helm指令后再进行后续操作。
整合前端升级
升级hzero-front
编写参数配置文件
hzero-front.yaml
env:
open:
BUILD_CLIENT_ID: choerodon
BUILD_API_HOST: http://api.example.choerodon.io
ingress:
enabled: true
host: hzero.example.choerodon.io
部署服务
helm upgrade --install hzero-front c7n/hzero-front \
-f hzero-front.yaml \
--version 0.22.1 \
--namespace c7n-system
验证部署
验证命令
curl $(kubectl get svc hzero-front -o jsonpath="{.spec.clusterIP}" -n c7n-system):80
出现以下类似信息即为成功部署
!doctype html><html lang="zh"><head><meta charset="utf-8"/><title>HZERO</title><link rel="shortcut icon" href="/manifest.json"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><meta name="format-detection" content="telephone=no"/>...
升级choerodon-front
升级服务
helm upgrade choerodon-front c7n/choerodon-front \
-f <(helm get values choerodon-front --namespace c7n-system) \
--set env.open.HZERO_FRONT=" http://hzero.example.choerodon.io" \
--version 0.22.1 \
--namespace c7n-system
验证升级
- 验证命令
curl $(kubectl get svc choerodon-front -o jsonpath="{.spec.clusterIP}" -n c7n-system):8080
- 出现以下类似信息即为成功升级
<!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>
默认登录用户
升级完成后,默认的管理员用户名密码为 [admin/Admin@123!],可使用此用户密码登陆系统。安装完成后建议立即在个人中心修改默认密码。