分步部署微服务开发框架

在此之前,应该准备好Mysql、Harbor、Gitlab、Minio,Chartmuseum这些组件的信息。按以下搭建顺序进行搭建,请不要随意调整搭建顺序。以下验证部署是否成功如未特别说明则执行验证的环境为任意一台集群Master节点。
  • 如果您的主机性能或网络较差,建议您添加额外的参数以延长超时时间—set preJob.timeout=1000,其中1000表示1000秒后超时。
部署成功后Choerodon平台默认登录名为admin,默认密码为admin。

添加Choerodon Chart仓库

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

创建数据库

  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 USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';\
  8. CREATE DATABASE IF NOT EXISTS iam_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
  9. CREATE DATABASE IF NOT EXISTS manager_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
  10. CREATE DATABASE IF NOT EXISTS asgard_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
  11. CREATE DATABASE IF NOT EXISTS notify_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
  12. GRANT ALL PRIVILEGES ON iam_service.* TO choerodon@'%';\
  13. GRANT ALL PRIVILEGES ON manager_service.* TO choerodon@'%';\
  14. GRANT ALL PRIVILEGES ON asgard_service.* TO choerodon@'%';\
  15. GRANT ALL PRIVILEGES ON notify_service.* TO choerodon@'%';\
  16. FLUSH PRIVILEGES;" \
  17. --version 0.1.0 \
  18. --name create-c7nfw-db \
  19. --namespace c7n-system

部署register server

  • 部署服务
  1. helm install c7n/go-register-server \
  2. --set service.enable=true \
  3. --set service.name=register-server \
  4. --set env.open.REGISTER_SERVICE_NAMESPACE="c7n-system" \
  5. --name register-server \
  6. --version 0.16.0 \
  7. --namespace c7n-system

参数名含义service.enable是否创建service对象service.nameservice对象的名称env.open.REGISTER_SERVICE_NAMESPACE仅监听的namespace,多个namespace请用逗号隔开

  • 验证部署

    • 验证命令
  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": "192.168.3.19:go-register-server:8000",
  6. "hostName": "192.168.3.19",
  7. "app": "go-register-server",
  8. "ipAddr": "192.168.3.19",
  9. "status": "UP",
  10. "overriddenstatus": "UNKNOWN",
  11. "port": {
  12. "@enabled": true,
  13. "$": 8000
  14. },
  15. "securePort": {
  16. "@enabled": false,
  17. "$": 443
  18. },
  19. "countryId": 8,
  20. "dataCenterInfo": {
  21. "name": "MyOwn",
  22. "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"
  23. },
  24. ...
  25. "metadata": {
  26. "VERSION": "0.15.0"
  27. },
  28. ...
  29. }
  30. ]
  31. }

部署manager service

  • 部署服务
  1. helm install c7n/manager-service \
  2. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  3. --set preJob.preInitDB.datasource.username=choerodon \
  4. --set preJob.preInitDB.datasource.password=password \
  5. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_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_CLOUD_CONFIG_ENABLED=true \
  9. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
  10. --set env.open.CHOERODON_GATEWAY_DOMAIN="api.example.choerodon.io" \
  11. --set env.open.CHOERODON_SWAGGER_OAUTH_URL="http://api.example.choerodon.io/oauth/oauth/authorize" \
  12. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
  13. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
  14. --set env.open.SPRING_REDIS_PORT=6379 \
  15. --set env.open.SPRING_REDIS_DATABASE=1 \
  16. --name manager-service \
  17. --version 0.16.0 \
  18. --namespace c7n-system

参数名含义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.CHOERODON_SWAGGER_OAUTH_URLswagger授权地址env.open.CHOERODON_GATEWAY_DOMAIN平台api地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址

  • 验证部署

    • 验证命令
  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

  • 部署服务
  1. helm install c7n/asgard-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/asgard_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/asgard_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  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. --name asgard-service \
  15. --version 0.16.0 \
  16. --namespace c7n-system

参数名含义preJob.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注册服务地址

  • 验证部署

    • 验证命令
  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 install c7n/notify-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/notify_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/notify_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  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.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
  15. --set env.open.SPRING_REDIS_DATABASE=3 \
  16. --set service.enable=true \
  17. --set service.name=notify-service \
  18. --set ingress.enable=true \
  19. --set ingress.host=notify.example.choerodon.io \
  20. --name notify-service \
  21. --version 0.16.0 \
  22. --namespace c7n-system

参数名含义preJob.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注册服务地址

  • 验证部署

    • 验证命令
  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 install c7n/iam-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/iam_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/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
  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. --name iam-service \
  15. --version 0.16.0 \
  16. --namespace c7n-system

参数名含义preJob.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注册服务地址

  • 验证部署

    • 验证命令
  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

  • 部署服务
  1. helm install c7n/api-gateway \
  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 service.enable=true \
  6. --set ingress.enable=true \
  7. --set ingress.host=api.example.choerodon.io \
  8. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
  9. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
  10. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
  11. --name api-gateway \
  12. --version 0.16.0 \
  13. --namespace c7n-system

参数名含义preJob.preConfig.datasource{}初始化配置所需manager_service数据库信息service.enable创建service对象ingress.enable创建ingress对象ingress.host域名地址,此处不能带http://env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址

  • 验证部署

    • 验证命令
  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 install c7n/gateway-helper \
  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 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.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
  9. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
  10. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
  11. --set env.open.SPRING_CACHE_MULTI_L1_ENABLED=true \
  12. --set env.open.SPRING_CACHE_MULTI_L2_ENABLED=false \
  13. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
  14. --set env.open.SPRING_REDIS_PORT=6379 \
  15. --set env.open.SPRING_REDIS_DATABASE=5 \
  16. --name gateway-helper \
  17. --version 0.16.0 \
  18. --namespace c7n-system

参数名含义preJob.preConfig.datasource{}初始化配置所需manager_service数据库信息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.SPRING_CACHE_MULTI_L1_ENABLED启用L1缓存env.open.SPRING_CACHE_MULTI_L2_ENABLED启用L2缓存env.open.SPRING_REDIS_HOSTRedis数据库地址env.open.SPRING_REDIS_PORTRedis数据库端口env.open.SPRING_REDIS_DATABASERedis数据库

  • 验证部署

    • 验证命令
  1. curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=gateway-helper -o jsonpath="{.items[0].status.podIP}"):9181/actuator/health | jq -r .status
  • 出现以下类似信息即为成功部署
  1. UP

部署oauth server

  • 部署服务
  1. helm install c7n/oauth-server \
  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 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_DATABASE=7 \
  10. --set env.open.CHOERODON_DEFAULT_REDIRECT_URL="http://c7n.example.choerodon.io" \
  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. --name oauth-server \
  15. --version 0.16.0 \
  16. --namespace c7n-system

参数名含义preJob.preConfig.datasource{}初始化配置所需manager_service数据库信息env.open.SPRING_DATASOURCE_URL数据库链接地址env.open.SPRING_DATASOURCE_USERNAME数据库用户名env.open.SPRING_DATASOURCE_PASSWORD数据库密码env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.CHOERODON_DEFAULT_REDIRECT_URL默认重定向地址env.open.SPRING_REDIS_HOSTRedis数据库地址env.open.SPRING_REDIS_DATABASERedis数据库env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址

  • 验证部署

    • 验证命令
  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 install c7n/file-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 env.open.MINIO_ENDPOINT="http://minio.example.choerodon.io" \
  6. --set env.open.MINIO_ACCESSKEY=admin \
  7. --set env.open.MINIO_SECRETKEY=password \
  8. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
  9. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
  10. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
  11. --name file-service \
  12. --version 0.16.0 \
  13. --namespace c7n-system

参数名含义preJob.preConfig.datasource{}初始化配置所需manager_service数据库信息env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址env.open.MINIO_ENDPOINTminio地址env.open.MINIO_ACCESSKEYminio access keyenv.open.MINIO_SECRETKEYminio secret key

  • 验证部署

    • 验证命令
  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