# DID-APP部署文档 ## k8s部署方式 ### 软件环境准备 | 软件 | 版本 | 描述 | |:---------------|:------:|:-----------| | docker | 18+ | docker容器服务 | | docker-compose | v1.26+ | | | redis集群 | 7.2+ | | | mysql | V8+ | mysql数据库 | | 可访问的Docker镜像服务 | - | 存储镜像 | #### Kubernetes集群 - 确保已有一个运行中的Kubernetes集群,版本建议为v1.18或更高。 - 已安装并配置`kubectl`命令行工具,用于与Kubernetes集群交互 #### Docker镜像仓库 - 项目方准备一个公网可访问的Docker镜像仓库,用于存储“DID APP后台”微服务的镜像。在后续运行部署流程时会自动拉取,如果Kubernetes所在环境无法访问互联网,需要手动载入Docker镜像到Kubernetes的Worker节点。载入命令在物料包中,执行: - 手动载入Docker镜像,找个能连hub-dev.cnbn.org.cn的服务器 ```shell docker pull hub-dev.cnbn.org.cn/opennet/did-app-backend:v1.1.0 docker save did-app-backend-v1.1.0.tar hub-dev.cnbn.org.cn/opennet/did-app-backend:v1.1.0 ``` - 上传文件 did-app-backend-v1.1.0.tar 到服务器 ```shell docker load -i did-app-backend-v1.1.0.tar ``` ### 部署流程 - 下载部署仓库: https://git.code.tencent.com/ChainWeaver/did/did-app-backend - 在下载的仓库的k8s目录下,既是k8s的部署did-app-backend-deployment.yaml #### 根据实际需要修改ConfigMap 在实际项目使用中可能会存在测试环境、预生产环境、生产环境等多套环境,请根据实际环境的需求调整ConfigMap中的参数。如复制份数、日志输出等。 #### 修改did-app-backend-configmap 修改did-app-backend-deployment.yaml中的ConfigMap配置(以下是一些关键的配置描述): - mysql:改为实际的数据库的服务 - email_auth_code:改为实际发邮件的服务 - auth_code:改为实际下发短信的服务 - RedisConf:改为实际缓存数据库的服务 - did:改为实际DID gateway服务地址 - auth_service:改为实际电子营业执照小程序服务地址 #### 部署到Kubernetes集群 - 使用`kubectl apply`命令部署资源定义文件到Kubernetes集群: ```shell kubectl apply -f did-app-backend-deployment.yaml ``` #### 验证部署检查Pod状态,确保DID APP后台”微服务已成功启动并运行 - 利用`kubectl get` 命令查看服务是否启动 ```shell kubectl get pod -n did| grep did-app ``` 返回结果如下,1/1则表示微服务有一个实例,启动成功1个pod实例,如果是2/2则表示有两个实例,启动成功了2个pod实例: ```shell did-app-XXXXX-XXX 1/1 Running 0 1d ``` 检查Service和Ingress资源配置,保外部访问路径和端口正确: ```shell kubectl get svc,ing -n did| grep did-app ``` - 利用health接口验证是否部署成功(ip为k8s work的地址,host为端口号) ```shell curl -X GET https://ip:host/api/v1/did-app/health ``` 返回结果如下,表示部署成功: ```shell {"code":200000,"msg":"操作成功","data":{"version":"v1.0.0","app_chinese_name":"航运贸易app","didIssuer":"did:cndid:cndid","personAuthEnable":false,"downloadLink":"https://zxchain-wallet-1258344699.cos.ap11.apk"}} ```