华为云用户手册

  • 操作步骤 登录ServiceStage控制台。 单击“全链路流量控制”。 单击待创建基线泳道所在泳道组名称(例如:lane-test),进入“全链路流量控制”页面。 单击“创建基线泳道”,参考下表填写泳道信息。 参数名称 参数说明 泳道名称 输入泳道的名称,例如:base。 标签 用于在Kubernetes类型的环境下创建并部署组件时,将绑定ServiceComb引擎专享版的组件打上相应的标签以标记流量。当有请求访问时,应用网关会根据路由规则将流量转发到对应流量标签的微服务上。当无法找到对应标签的微服务时,将转发至基线泳道对应的微服务。 基线泳道的标签默认为base,不可修改。 单击“确定”,完成基线泳道创建。 单击已创建好的基线泳道卡片上的“关联组件”或右上角的。 在弹出的“关联组件”对话框勾选创建并部署基线版本组件时已部署好的全部待关联组件:unit-controller、unit-consumer和unit-provider。 单击“确定”,完成基线泳道组件关联。 单击基线泳道卡片上当前已关联的组件数,可以查看基线泳道已关联的组件列表。
  • 操作步骤 登录微服务引擎控制台。 为准备资源时创建的应用网关配置路由,请参考创建路由。 参考下表填写相关参数,其余参数保持默认。 参数名称 参数说明 路由名称 输入路由名称,例如:controller。 域名 勾选下拉列表中的“*”。 路由规则 服务地址:选择“前缀匹配”,输入“/”。 请求方法:选择“GET”。 服务名称:选择“unit-controller”。 分组:设置为“不限制”。 权重:设置为100。 使用全链路流量控制实现灰度发布时,一条路由下的所有路由规则必须绑定同一个目标服务。如需绑定多个目标服务,请创建多条路由。
  • 操作步骤 为准备资源时创建的应用网关创建服务来源,请参考创建服务来源。 服务来源参数请参考下表进行设置。 参数名称 参数说明 来源类型 目标服务的来源,选择“ CS E ServiceComb引擎”。 来源名称 输入目标服务的名称,例如:servicecomb。 引擎实例 选择准备资源时已经创建的ServiceComb引擎专享版。 为准备资源时创建的应用网关绑定目标服务,请参考创建服务。 参考下表填写相关参数。 参数名称 参数说明 来源类型 目标服务的来源,选择“CSE ServiceComb引擎”。 服务来源 选择1输入的目标服务的名称,例如:servicecomb。 环境选择 保持默认。 服务列表 选择接入了1所选择的ServiceComb引擎的目标服务实例“unit-controller”。
  • 准备资源 创建一个虚拟私有网络VPC,请参考创建虚拟私有云和子网。 创建一个1.15以上版本的CCE集群(如果只是试用场景,“集群规模”选择“50节点”,“集群master实例数”选择“单实例”即可),请参考购买集群。 集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的ECS节点,并且绑定弹性公网IP。 集群所在VPC为1创建的VPC。 CCE集群不能被其他环境绑定。 创建不开启安全认证的2.4.0及以上版本的ServiceComb引擎专享版,请参考创建微服务引擎。 如果ServiceComb引擎所在VPC与1创建的VPC不一致,需正确配置VPC连通。 创建微服务应用网关,请参考创建应用网关。 如果微服务应用网关与环境所在VPC不一致,需正确配置VPC连通。
  • 操作步骤 登录GitLab,进入代码仓库。 单击“Settings”,选择“Webhooks”,在右下角的“Test”下拉框,选择“Push events”。 在浏览器地址栏输入http://{安装Jenkins的Linux虚拟机IP}:8080,登录Jenkins。 左侧构建执行状态中,可以看到已经触发的构建任务。 单击构建任务编号,选择“Console Output”,查看构建输出日志。 登录ServiceStage控制台。 单击“组件管理”。 在组件列表中单击升级的组件名称,进入组件“概览”页面。 在“概览”界面,查看“组件版本”以及组件包“代码源”是否已经更新。 单击“部署记录”,查看对应的部署记录。
  • 手动构建验证 在浏览器地址栏输入http://{安装Jenkins的Linux虚拟机IP}:8080,登录Jenkins。 单击“我的视图”。 选择对应的构建任务,单击构建任务名称进入详情界面。 单击“立即构建”,生成构建任务。 在“构建历史”以及“阶段视图”中会有对应的构建任务信息。鼠标悬浮在对应步骤上,会展示任务状态以及日志按钮。单击“log”查看日志。 登录ServiceStage控制台。 单击“组件管理”。 在组件列表中单击升级的组件名称,进入组件“概览”界面。 在“概览”界面,查看“组件版本”以及组件包“代码源”是否已经更新。 单击“部署记录”,查看对应的部署记录。 父主题: 构建验证
  • 脚本参数说明 参数 是否必须 参数类型 描述 region 是 String Region名称。获取方法,请参考参数值获取。 project_id 是 String 项目ID。获取方法,请参考参数值获取。 application_id 是 String 应用ID。获取方法,请参考参数值获取。 component_id 是 String 组件ID。获取方法,请参考参数值获取。 rolling_release_batches 是 int 分批部署批次。 deploy_type 是 String 部署类型。 package表示软件包部署。 image表示镜像部署。 obsutil 否 String 当使用软件包部署如jar包部署时为必选参数,上传jar包到obs的工具安装的绝对路径。例如:/root/tools/obsutil/obsutil_linux_amd64_5.4.6/obsutil。 bucket 否 String 当使用软件包部署时为必选参数,上传到obs的桶路径,格式为obs://{桶名称},例如:obs://obs-mzc。 obs_jar_url 否 String 当使用软件包部署时为必选参数。软件包上传obs后的链接,格式为obs://{桶名}/{软件包名}。例如,obs://obs-mzc/spring-demo-0.0.1-SNAPSHOT.jar。 machine_image_name 否 String 当使用镜像部署时为必选参数,Jenkins打包构建后生成的镜像,格式为:{镜像名称}:{版本},例如:java-test:v1。 swr_image_url 否 String 当使用镜像部署时为必选参数,上传到SWR镜像仓库的镜像包路径,格式为:{镜像仓库地址}/{组织名称}/{镜像包名称}:{版本},其中SWR镜像仓库地址格式为:swr.{区域所属项目名称}.myhuaweicloud.com。 AK 否 String 当使用镜像部署时为必选参数。访问密钥ID,即AK,用于登录SWR镜像仓库。获取方法,请参考访问密钥。 SK 否 String 当使用镜像部署时为必选参数。与访问密钥ID(AK)结合使用的密钥,即SK,用于登录SWR镜像仓库。获取方法,请参考访问密钥。 login_secret 否 String 当使用镜像部署时为必选参数。SWR镜像仓库的登录密钥,用于登录SWR镜像仓库。执行如下命令,返回的结果就是登录密钥: printf "{AK}" | openssl dgst -binary -sha256 -hmac "{SK}" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//' {AK}、{SK}请替换为已获取到的AK、SK的值。 swr_url 否 String 当使用镜像部署时为必选参数。SWR镜像仓库地址,格式为:swr.{区域所属项目名称}.myhuaweicloud.com
  • 参数值获取 获取region、project_id 登录ServiceStage控制台。 鼠标移动到右上角登录用户名上,在下拉菜单选择“我的凭证”。 查看所属区域的项目和项目ID,即为对应的region和project_id值。 获取application_id、component_id 登录ServiceStage控制台。 单击“组件管理”。 单击对应的组件名称。 在“概览”界面的“配置详情”区域,单击“组件配置”。 查看CAS_APP_ID、CAS_APPLICATION_ID的值,即为application_id、component_id。
  • 配置流水线脚本 流水线脚本是构建时运行的构建命令,脚本参数说明见表1。 表1 表1 流水线脚本参数说明 参数 是否必须 参数类型 描述 git_url 是 String GitLab代码仓库地址。 credentials_id 是 String 使用账号密码配置的GitLab凭据id,请参考创建GitLab凭证。 branch_name 是 String GitLab代码仓库分支名称。 maven 是 String maven安装的可执行文件路径,例如:/root/app/maven/apache-maven-3.8.6/bin/mvn。 upgrade_shell 是 String upgrade.sh脚本在Jenkins所在虚拟机上存放的路径,例如:/root/jar/upgrade.sh。内容请参见upgrade.sh脚本说明。 完成“构建触发器”配置之后,在“流水线”页签,在下拉框选择“Pipeline script”。 配置流水线脚本,示例中使用的是构建jar包场景,脚本如下: 请使用您环境下的实际参数替换脚本中的参数变量。 node { // 定义代码仓库地址,例如:http://10.95.156.58:8090/zmg/test.git def git_url = '{代码仓库地址}' // GitLab凭据id def credentials_id = '{GitLab凭据id}' // git代码仓库分支名称,例如:main def branch_name = '{git代码仓库分支名称}' // maven安装的可执行文件路径,例如 :/root/app/maven/apache-maven-3.8.6/bin/mvn def maven = '{maven安装的可执行文件路径}' // upgrade.sh脚本存放路径,例如:/root/jar/upgrade.sh def upgrade_shell = '{upgrade.sh脚本存放路径}' stage('Clone sources') { git branch: branch_name, credentialsId: credentials_id, url: git_url } stage('Build') { // 构建jar包 sh "'$maven' clean package -Dmaven.test.failure.ignore=true -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true" } stage('upgrade') { // 执行脚本,使用构建上传到obs的jar包升级ServiceStage组件,超时时间5分钟 sh "timeout 300s '$upgrade_shell'" } } 流水线脚本运行时会调用upgrade.sh,该脚本详细说明请参见upgrade.sh脚本说明。 设置脚本文件upgrade.sh为可执行文件。
  • 配置构建触发器 配置Jenkins构建触发器。 勾选“Build when a change is pushed to GitLab”,保存GitLab webhook URL(配置Gitlab webhook时需使用),然后单击右下角“高级”。 选择“Filter branches by regex ”,配置指定分支变更后触发构建任务,示例中的分支名称为main,单击右下角“Generate”生成Secret token并保存,在配置GitLab webhook时需使用。 配置GitLab webhook。 登录GitLab,进入代码仓库,示例中的仓库名称是“test”,选择settings中的“Webhooks”,URL和Secret token填写1获取到的GitLab webhook URL和Secret token。 取消勾选SSL verification的“Enable SSL verification”,单击“Add webhook”。
  • 生成GitLab访问令牌 登录GitLab。 鼠标移动到右上角的账号名上,单击“Edit profile”。 单击“Access Tokens”,输入“Token name”,勾选“api”,单击“Create personal access token”创建访问令牌。 完成后在页面上方的“Personal Access Tokens”右侧显示token令牌。 令牌仅在初次生成时显示,否则下次需要重新创建。该令牌仅用于GitLab对接测试。
  • 方式二:软件包安装 登录Jenkins所在Linux虚拟机,执行如下命令查看虚拟机操作系统类型: echo $HOSTTYPE 若执行如上命令的输出值是“x86_64”,则为AMD 64位系统。 若执行如上命令的输出值是“aarch64”,则为ARM 64位系统。 执行如下命令下载对应的软件包。 AMD wget "https://hwcloudcli.obs.cn-north-1.myhuaweicloud.com/cli/latest/huaweicloud-cli-linux-amd64.tar.gz" -O huaweicloud-cli-linux-amd64.tar.gz ARM wget "https://hwcloudcli.obs.cn-north-1.myhuaweicloud.com/cli/latest/huaweicloud-cli-linux-arm64.tar.gz" -O huaweicloud-cli-linux-arm64.tar.gz 执行如下命令解压软件包。 AMD tar -zxvf huaweicloud-cli-linux-amd64.tar.gz ARM tar -zxvf huaweicloud-cli-linux-arm64.tar.gz 在解压后的目录执行如下命令创建软链接到“/usr/local/bin”目录: ln -s $(pwd)/hcloud /usr/local/bin/ 执行如下命令验证是否安装成功: hcloud version 系统显示类似“当前KooCLI版本:3.4.1.1”版本信息,表示安装成功。
  • 初始化配置KooCLI 登录Jenkins所在Linux虚拟机。 执行命令进行初始化配置,输入命令后按回车进入交互模式,根据界面提示输入各参数值,各参数配置参考表1。 hcloud configure init 表1 初始化配置 参数 说明 Access Key ID (必填参数)访问密钥ID,即AK。获取方法,请参考访问密钥。 Secret Access Key (必填参数)与访问密钥ID(AK)结合使用的密钥,即SK,初始化时必填。获取方法,请参考访问密钥。 Region (选填参数)区域,即ServiceStage服务部署区域。获取方法,请参考地区和终端节点。 添加配置参数。 可能会出现找不到对应cli升级命令的问题,需要添加额外配置: hcloud configure set --cli-lang=cn
  • 相关软件下载及安装 Jenkins下载安装 下载链接:https://mirrors.jenkins.io/war-stable/,参考https://www.jenkins.io/zh/doc/book/installing/进行安装。 安装git用于拉取代码进行构建命令 yum install git –y JDK安装包下载 https://www.oracle.com/cn/java/technologies/downloads/#java11 Maven安装包下载 https://maven.apache.org/download.cgi 安装Docker用于打包镜像包并上传到镜像仓库 yum install docker
  • 安装后检查 检查git: [root@ecs-jenkins ~]# git version git version 1.8.3.1 检查JDK: [root@ecs-jenkins jar]# java -version openjdk version "1.8.0_345" OpenJDK Runtime Environment (build 1.8.0_345-b01) OpenJDK 64-Bit Server VM (build 25.345-b01, mixed mode) 检查Maven: [root@ecs-jenkins jar]# mvn -v Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /root/app/maven/apache-maven-3.8.6 Java version: 11.0.8, vendor: Huawei Technologies Co., LTD, runtime: /root/app/jdk11/jdk-11.0.8 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-1160.76.1.el7.x86_64", arch: "amd64", family: "unix" 检查Docker: [root@ecs-jenkins jar]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7d71120/1.13.1 Built: Wed Mar 2 15:25:43 2022 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7d71120/1.13.1 Built: Wed Mar 2 15:25:43 2022 OS/Arch: linux/amd64 Experimental: false
  • 环境信息说明 在Linux虚拟机上安装Jenkins,本实践使用的具体环境信息如下所示。如果使用镜像包部署,需要在虚拟机中安装Docker。 虚拟机:CentOS 7.9 Jenkins:2.319.3 git:yum安装 JDK:11.0.8 Apache Maven:3.8.6 部署的Jenkins启动时需添加参数: -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true 否则GitLab对接Jenkins会失败,报错信息如下: HTTP Status 403 - No valid crumb was included in the request
  • 实践概述 代码开发完成后,每次上线前都需要先在Jenkins上打包成镜像包或Jar包,再将镜像包上传到SWR镜像仓库或者将Jar包上传到OBS对象存储,然后再使用ServiceStage升级组件版本配置。该流程较为繁琐,频繁发版本测试导致开发和运维效率低、用户体验差。 如果您的代码在GitLab上管理,使用ServiceStage进行应用托管并且已经部署了组件,则可以通过使用GitLab对接Jenkins自动构建打包,升级已经部署在ServiceStage上的组件版本配置。 本实践通过输出在Jenkins构建打包完成之后自动升级组件的shell脚本,实现了代码合入后自动构建打包并在ServiceStage上升级部署。 父主题: 使用GitLab对接Jenkins自动构建并升级部署到ServiceStage的组件
  • 使用ELB灰度发布升级组件版本 返回ServiceStage控制台。 单击“应用管理”,进入应用列表。 单击创建应用时创建的应用名称(例如:springGuides),进入“应用概览”页面。 在“组件列表”,单击部署和访问Spring Boot应用时创建的组件名称(例如:spring-boot),进入组件“概览”页面。 在页面右上方,单击“升级”。 “升级类型”选择“灰度发布”,单击“下一步”。 参考下表设置灰度升级配置必填信息,其余参数保持默认。 参数 说明 软件包/镜像 固定为创建并部署组件时选择的GitHub源码仓库。 单击“修改”。 “授权信息”选择设置GitHub仓库授权时创建的授权信息。 “用户名/组织”选择复刻源码时登录您的GitHub使用的用户名。 “仓库名称”选择已Fork到您的GitHub下的Spring Boot源码仓库的名称:gs-spring-boot-kubernetes。 “分支”选择“main”。 编译命令 选择“使用自定义命令”。 在输入框输入以下命令: cd ./complete/;mvn clean package 组件版本 输入:1.0.1。 部署架构 单击“选择”。 选择“类型三:对接ELB(服务A实现灰度)”。 单击“确定”。 灰度策略 选择“基于流量比例”。 选择流量比例 灰度流量比例:设置为50%,即引入到新版本的流量比例为50%。 当前流量比例:自动调整为50%,即引入到当前版本的流量比例为50%。 灰度实例新增模式 选择“金丝雀(先增后减)”。 首批灰度实例数量 设置为1。 剩余实例部署批次 设置为1。 单击“升级”。 等待组件状态由“升级/回滚中”转换为“灰度发布中”,表示已成功完成组件灰度发布。 多次执行访问Spring Boot应用,在页面交替显示“Greetings from Spring Boot!”和“Hello”,说明组件版本ELB灰度发布成功。 父主题: 使用ServiceStage托管Spring Boot应用
  • 访问Spring Boot应用 单击左上角,返回“应用管理”页面。 单击创建应用时创建的应用名称(例如:springGuides),进入“应用概览”页。 在“组件列表”,单击创建和部署Spring Boot应用组件时设置的组件名称(例如:spring-boot)所在行“外部访问地址”列的访问地址,访问应用。 在页面显示如下信息,表示应用部署成功。 Greetings from Spring Boot!
  • 创建和部署Spring Boot应用组件 登录ServiceStage控制台。 单击“应用管理”,进入应用列表。 单击创建应用时创建的应用名称(例如:springGuides)“操作”栏的“新增组件”。 在“基本信息”区域,参考下表设置必填组件基本信息,其余参数保持默认。 参数 说明 组件名称 输入组件名称(例如:spring-boot)。 组件版本 输入:1.0.0。 所属环境 选择创建环境时创建的环境(例如:env-test)。 所属应用 选择创建应用时创建的应用(例如:springGuides)。 在“组件包”区域,参考下表设置必填组件包参数,其余参数保持默认。 参数 说明 技术栈 组件技术栈类型选择Java。 源码/软件包 选择“源码仓库”。 选择“GitHub”。 “授权信息”选择设置GitHub仓库授权时创建的授权信息。 “用户名/组织”选择复刻源码时登录您的GitHub使用的用户名。 “仓库名称”选择已Fork到您的GitHub下的Spring Boot源码仓库的名称,例如:gs-spring-boot。 “分支”选择“boot-2.7”。 在“构建”区域,参考下表设置必填构建参数,其余参数保持默认。 参数 说明 编译命令 选择“使用自定义命令”。 在命令输入框输入以下命令: cd ./complete/;mvn clean package 组织 选择创建组织时创建的组织名称。 组织用于管理组件构建生成的镜像。 构建环境 选择“使用当前环境构建”,使用组件所属的部署环境中的CCE集群进行镜像构建。 当前环境CCE集群的master节点和node节点的CPU架构必须保持一致,否则会导致组件构建失败。 图1 设置构建参数 单击“下一步”。 在“访问方式”区域,单击开启公网访问,参考下表设置组件公网访问参数。 参数 说明 公网访问 选择开启。 公网ELB 默认选择组件所属的部署环境中已纳管的ELB。 对外协议 保持默认。 域名 选择“绑定域名”,在输入框中输入准备资源时获取的公网域名。 监听端口 输入8080。 单击“创建并部署”。
  • 准备资源 为了方便后续的操作,需要您提前准备好如下资源: 创建一个 虚拟私有云VPC ,请参考创建虚拟私有云和子网。 创建一个CCE集群(如果只是试用场景,“集群规模”选择“50节点”,“集群master实例数”选择“单实例”即可),请参考购买集群。 CCE集群所在VPC为1所创建的VPC。 集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的ECS节点,并且绑定弹性公网IP。为CCE集群添加节点,请参考创建节点。 CCE集群不能被其他环境绑定。 已在域名提供者处注册并获取公网域名,请参考创建公网域名。 本例基于ServiceStage绑定GitHub源码仓库,实现源码构建、归档、应用创建。需要先到GitHub官网注册账号,请参考在GitHub上创建帐户。
  • 操作步骤 登录ServiceStage控制台。 删除已部署的微服务应用组件实例。 选择“应用管理”。 单击微服务应用所在的应用名称,进入“应用概览”页。 在组件列表,勾选待删除组件,单击“批量删除”。 在弹出的对话框,单击“确定”。 修改部署微服务应用组件的环境。 单击左上角,返回“应用管理”页面。 选择“环境管理”。 单击部署微服务应用的环境名称。 在“资源”区域左侧列表,选择“中间件”资源类型下的“ServiceComb引擎”。 勾选“Cloud Service Engine”,单击“移除资源”。 单击“纳管资源”。 勾选已创建的ServiceComb引擎专享版,单击“确定”。 重新部署微服务应用组件,请参考使用容器部署方式基于界面配置创建并部署组件。
  • 操作步骤 升级微服务组件使用的SDK版本。 开启安全认证功能,需要使用的SDK支持安全认证功能。如果当前的微服务组件使用的SDK版本低于要求的版本(Spring Cloud Huawei需要1.6.1及以上版本、Java Chassis需要2.3.5及以上版本),需要对当前的微服务进行SDK版本升级。 配置微服务组件安全认证参数。 ServiceComb引擎开启安全认证前,需要对已连接到该引擎的微服务组件配置安全认证参数。配置安全认证参数是通过配置安全认证账号和密码的方式触发,具体方法如下: Spring Cloud微服务组件配置安全认证账号名和密码 表1 Spring Cloud微服务组件配置安全认证账号名和密码 配置文件配置方式 环境变量注入方式 为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。 spring: cloud: servicecomb: credentials: account: name: test #安全认证账号名,请结合用户实际值配置 password: mima #安全认证账号密码,请结合用户实际值配置 cipher: default 添加如下环境变量,请参考手动添加应用环境变量。 spring_cloud_servicecomb_credentials_account_name,安全认证账号名,请结合用户实际值配置。 spring_cloud_servicecomb_credentials_account_password,安全认证账号密码,请结合用户实际值配置。 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考自定义实现加密存储算法。 ServiceComb引擎没有开启安全认证时,如果连接到当前ServiceComb引擎的微服务组件配置了安全认证参数,微服务组件的正常业务功能不受影响。 Java Chassis微服务组件配置安全认证账号名和密码 表2 Java Chassis微服务组件配置安全认证账号名和密码 配置文件配置方式 环境变量注入方式 为微服务的“microservice.yml”文件增加以下配置,若已配置请忽略。 servicecomb: credentials: rbac.enabled: true #是否开启安全认证,请结合用户实际值配置 cipher: default account: name: test #安全认证账号名,请结合用户实际配置 password: mima #安全认证账号密码,请结合用户实际配置 cipher: default 添加如下环境变量,请参考手动添加应用环境变量。 servicecomb_credentials_rbac_enabled,是否开启安全认证,请结合用户实际值配置:true,开启安全认证;false,不开启安全认证。 servicecomb_credentials_account_name,安全认证账号名,请结合用户实际值配置。 servicecomb_credentials_account_password,安全认证账号密码,请结合用户实际值配置。 开启ServiceComb引擎专享版安全认证,请参考开启安全认证。 开启安全认证后,接入该引擎的微服务组件如果没有配置安全认证参数,或者微服务组件配置的安全认证账号和密码不正确,会导致该微服务组件心跳失败,服务被迫下线。
  • 解决方法 创建应用时,“应用名称”输入唯一的应用名称,例如:weathermap_test。 单击1已创建的天气预报应用名称(例如:weathermap_test),进入“应用概览”页。 单击“环境变量”,在下拉列表选择应用组件部署环境(例如:env-test)。 单击“添加环境变量”,设置环境变量。 “变量名称”根据微服务组件采用的技术,参考下表设置。 微服务组件采用技术 变量名称 Java Chassis servicecomb_service_application Spring Cloud spring_cloud_servicecomb_discovery_appName 对应的“变量/变量引用”设置为1已创建的应用名称,例如:weathermap_test。 单击“提交”,完成应用环境变量的设置。
  • 设置edge-service组件访问方式 单击左上角,返回“应用管理”页面。 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。 在“组件列表”,单击edge-service所在行“外部访问地址”列的“设置”,进入“访问方式”页面。 单击“TCP/UDP路由配置”区域的“添加服务”,参考下表设置参数。 参数 说明 服务名称 保持默认。 访问方式 选择“公网访问”。 访问类型 选择“弹性IP”。 服务亲和 保持默认。 协议 选择TCP。 容器端口 填写3010。 访问端口 选择“自动生成”。 图1 设置edge-service组件访问方式 单击“确定”,生成访问地址。
  • 添加访问方式 单击“应用管理”。 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。 在“组件列表”,单击weathermapweb所在行“外部访问地址”列的“设置”,进入“访问方式”页面。 单击“TCP/UDP路由配置”区域的“添加服务”,参考下表设置参数。 参数 说明 服务名称 保持默认。 访问方式 选择“公网访问”。 访问类型 选择“弹性IP”。 服务亲和 保持默认。 协议 选择TCP。 容器端口 填写3000。 访问端口 选择“自动生成”。 图3 添加访问方式 单击“确定”,生成访问地址。 图4 访问地址
  • 用户故事 在本实践中,您可以通过容器部署的方式部署应用并将微服务实例注册到ServiceComb引擎中,weathermap应用需要创建并部署以下组件: 前台组件:weathermapweb,基于Node.js语言开发的界面。 后台组件:weather、fusionweather、forecast、edge-service,基于Java语言开发。 微服务部署有以下几个操作过程: 创建并部署后台应用组件 设置edge-service组件访问方式 创建并部署前台组件 确认部署结果 添加访问方式 访问应用
  • 下载并上传天气预报组件软件包 参考表1下载天气预报组件软件包到本地(本实践使用Java Chassis微服务开发框架开发的组件)。 表1 天气预报组件软件包说明 组件微服务开发框架 组件名称 组件软件包名称 组件软件包下载说明 Java Chassis weather weather-1.0.0.jar 进入天气预报组件软件包仓库。 单击ServiceComb,进入使用Java Chassis微服务开发框架开发的天气预报组件软件包库。 weather-beta weather-beta-2.0.0.jar forecast forecast-1.0.0.jar fusionweather fusionweather-1.0.0.jar edge-service edge-service-1.0.0.jar weathermapweb weathermapweb.zip Spring Cloud weather weather-1.0.0.jar 进入天气预报组件软件包仓库。 单击Spring Cloud,进入使用Spring Cloud微服务开发框架开发的天气预报组件软件包库。 weather-beta weather-beta-2.0.0.jar forecast forecast-1.0.0.jar fusionweather fusionweather-1.0.0.jar edge-service edge-service-1.0.0.jar weathermapweb weathermapweb.zip 将下载到本地的天气预报组件软件包上传到准备资源中准备好的桶中备用。 上传软件包,请参考流式上传(PUT上传)。
  • 准备资源 为了方便后续的操作,需要您提前准备好如下资源: 创建一个虚拟私有云VPC,请参考创建虚拟私有云和子网。 创建一个未开启安全认证的2.4.0或以上版本的ServiceComb引擎专享版,请参考创建微服务引擎。 ServiceComb引擎所在VPC为1所创建的VPC。如果VPC不一致,需正确配置VPC连通。 创建一个CCE集群(如果只是试用场景,“集群规模”选择“50节点”,“集群master实例数”选择“单实例”即可),请参考购买集群。 CCE集群所在VPC为1所创建的VPC。 集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的ECS节点,并且绑定弹性公网IP。为CCE集群添加节点,请参考创建节点。 CCE集群不能被其他环境绑定。 创建用于存储软件包的桶,请参考创建桶。
  • 用户故事 在本实践中,您可以通过容器部署的方式部署应用并将微服务实例注册到ServiceComb引擎中,weathermap应用需要创建以下组件: 前台组件:weathermapweb,基于Node.js语言开发的界面。 后台组件:weather、fusionweather、forecast、edge-service,基于Java语言开发。 微服务部署有以下几个操作过程: 创建并部署后台应用组件 设置edge-service组件访问方式 创建并部署前台组件 确认部署结果 添加访问方式 访问应用
共100000条