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