更新时间:2024-06-19 GMT+08:00

创建并部署组件

本节介绍基于ServiceStage创建并部署组件。

ServiceStage支持在同一个应用下创建同名组件。部署组件时,对于同名组件:

  • 同一个应用下的同名组件不能部署在同一个环境下。
  • 不同应用下的同名组件可以部署在同一个环境下。

前提条件

  1. 只能在应用下新增组件,请先创建应用,请参考创建应用
  2. 组件需要部署在指定环境下,请先创建环境并纳管资源,请参考环境管理
  3. 需要根据组织管理组件构建生成的镜像,请先创建组织,请参考创建组织
  4. (可选)如果基于Kubernetes类型的环境创建并部署组件,请先创建命名空间,请参考创建命名空间
  5. 如果您基于“源码仓库”创建组件,那么您首先需要创建仓库授权,请参考仓库授权
  6. 如果您基于软件包创建组件,那么您首先需要将软件包上传至SWR软件仓库或者OBS对象存储中。
    • 将软件包上传至SWR软件仓库,请参考上传软件包
    • 将软件包上传至OBS对象存储中,请参考上传对象

    如果上传软件包失败,请参考如何解决上传软件包失败的问题?

操作步骤

  1. 登录ServiceStage控制台。
  2. 选择以下任意方式进入“创建组件”页面:

    • 选择组件管理 > 新增组件
    • “应用管理”页面,选择待创建部署组件的应用,单击“操作”列的“新增组件”
    • “应用管理”页面,单击待创建部署组件的应用名称,在“应用概览”页面,单击“新增组件”

  3. “基本信息”区域,参考下表设置组件基本信息,其中带“*”标志的参数为必填参数。

    参数

    说明

    *组件名称

    组件的名称,组件创建并部署后不支持修改。

    Kubernetes类型环境:

    • 不同应用下的同名组件可以部署在同一个环境下。
    • 同一个应用下的同名组件可以部署在不同环境下。

    虚拟机类型环境:

    • 不同应用下的同名组件可以部署在同一个环境下。
    • 同一个应用下的同名组件可以部署在不同环境下。

    *组件版本

    组件版本号,支持自动生成和自定义版本号。

    • 自动生成版本号:单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。
    • 自定义版本号:输入格式为A.B.C或者A.B.C.D,A、B、C、D为自然数。例如,1.0.0或者1.0.0.0。

    *所属环境

    组件部署环境。

    *部署方式

    选择组件的部署方式。当选择的“所属环境”“虚拟机+Kubernetes”类型时需设置。

    • 容器部署:容器即云容器引擎CCE,提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在云平台上轻松部署、管理和扩展容器化应用程序。
    • 虚机部署:虚机即弹性云服务器ECS,是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器,将组件部署在虚拟机上。
    说明:

    如果之前版本的环境纳管了CCE集群和虚拟机资源,升级到当前版本后,该环境的类型为“虚拟机+Kubernetes”

    *所属应用

    组件所属应用。

    *工作负载名称

    组件部署方式为CCE容器部署时,需设置此参数。

    工作负载名称默认由系统自动生成,也支持自定义。

    工作负载默认名称由您输入的“组件名称”、选择的“所属环境”名称以及系统生成的6位随机字符串组成,总长度不超过62个字符。

    • 当您输入的“组件名称”长度不超过55个字符时,工作负载默认名称为:
      组件名称全部字符-所属环境名称全部或部分字符-系统生成的6位随机字符串

      其中,工作负载默认名称中的下划线(_)会被替换为中划线(-),名称中的大写字母会被转换为对应的小写字母。

      例如,输入的组件名称为Com_calc,选择的所属环境名称为env-cce,则工作负载默认名称示例如下:

      com-calc-env-cce-1uw8g0
    • 当您输入的“组件名称”长度超过了55个字符时,工作负载默认名称为:
      组件名称的前55个字符-系统生成的6位随机字符串

      其中,工作负载默认名称中的下划线(_)会被替换为中划线(-),名称中的大写字母会被转换为对应的小写字母。

      例如,输入的组件名称为C_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,则工作负载默认名称示例如下:

      c-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-1uw8g0

    您也可以自定义工作负载名称:输入长度为1到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    组件创建并部署完成后,不再支持修改工作负载的名称。

    *容器名称

    组件部署方式为CCE容器部署时,需设置此参数。

    容器名称默认和“工作负载名称”的值一致。

    您也可以自定义容器名称:输入长度为1到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    描述

    组件描述信息。

    1. 单击,在编辑栏输入组件的描述信息。
    2. 单击,完成组件描述信息设置。

      单击,取消设置组件描述信息。

    图1 设置组件基本信息

  4. “组件包”区域,参考下表设置组件包参数,其中带“*”标志的参数为必填参数。

    参数

    说明

    *技术栈

    1. 根据组件部署方式,参考表1,选择组件技术栈类型。
    2. “名称”下拉列表,选择技术栈名称。
    3. (可选)设置“JVM”参数,用于配置Java代码运行时的内存参数大小。技术栈类型选择Java、Tomcat时可设置。

      单击“技术栈配置”,输入JVM参数,如-Xms256m -Xmx1024m,多个参数以空格间隔,不填则为空。

    4. (可选)设置“Tomcat配置”参数,用于配置Tomcat请求路径、端口号等参数。技术栈类型选择Tomcat时可设置。
      1. 单击“技术栈配置”,勾选“Tomcat配置”,弹出“Tomcat配置”对话框。
      2. 单击“使用示例模板”,根据业务要求编辑模板文件。
        说明:

        Tomcat配置,使用默认server.xml配置,上下文路径是"/",没有指定应用路径。

        如需自定义应用路径,请参考定制Tomcat Context path

      3. 单击“确定”

    *源码/软件包

    选择“源码仓库”,参考仓库授权创建授权,设置代码来源。

    选择软件包,则组件来源支持的软件包类型由您选择的技术栈类型决定,具体情况请参考表1

    *上传方式

    组件来源为软件包或镜像包时,需选择已上传的软件包或镜像包,上传方式请参考组件来源说明

  5. “构建”区域,参考下表设置构建参数,其中带“*”标志的参数为必填参数。

    组件部署方式为CCE容器部署且所选择的技术栈类型为Java、Tomcat、Node.js、Python、Php时需设置。

    参数

    说明

    *编译命令

    组件来源是“源码仓库”时,根据业务需要设置“编译命令”

    • 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法编译,如Java语言的mvn clean package
    • 使用自定义命令:根据所选语言自定义编译命令,或修改build.sh文件后选择使用默认命令或脚本。
      须知:
      • 选择“使用自定义命令”时,请在echo、cat、debug命令中慎用敏感信息或者进行敏感信息加密,以免造成敏感信息泄露。
      • 在项目子目录下执行编译命令,需先进入项目子目录,再执行其余脚本命令。例如:

        cd ./weather/

        mvn clean package

    *Dockerfile地址

    组件来源是“源码仓库”时,根据业务需要设置“Dockerfile地址”

    “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。

    如果未指定“Dockerfile地址”,默认查找项目根目录下的Dockerfile;如果项目根目录下也没有Dockerfile文件,则根据选定的运行环境自动生成Dockerfile。

    *组织

    组织用于管理组件构建生成的镜像。

    *构建环境

    选择用于构建镜像的环境类型。执行构建的环境,必须是Kubernetes环境,且能够访问Internet。

    推荐您选择“使用当前环境构建”。如果当前环境的CCE集群不能访问Internet,且您单独规划了构建环境,则可选择“使用独立环境构建”

    • 使用独立环境构建:可使用单独的构建环境进行镜像构建。独立构建环境CCE集群和当前组件部署环境CCE集群的CPU架构必须保持一致,否则会导致组件部署失败。
    • 使用当前环境构建:使用组件所属的部署环境进行镜像构建。当前环境CCE集群的master节点和node节点的CPU架构必须保持一致,否则会导致组件构建失败。

    *选择环境

    • “构建环境”选择“使用独立环境构建”时,可选择使用不同于组件所属的独立构建环境。
    • “构建环境”选择“使用当前环境构建”时,固定选择使用组件所属的部署环境。

    *命名空间

    选择执行构建的环境下CCE集群命名空间,用于隔离构建数据。关于命名空间,请参考管理命名空间

    过滤节点标签

    通过节点标签可以将构建任务下发到绑定了EIP的固定节点上。

    新增过滤标签,请参考添加节点标签

    YAML模式

    • 选择关闭:使用界面配置来部署组件。
    • 选择开启:使用YAML配置来部署组件。
    图2 设置构建参数

  6. 单击“下一步”

    • 组件部署方式为CCE容器部署且5“YAML模式”选择开启,请执行7~9
    • 组件部署方式为虚拟机部署,请执行10~14
    • 组件部署方式为CCE容器部署且5“YAML模式”选择关闭,请执行10~14

  7. (可选)在“访问方式”区域单击,可开启组件公网访问。

    组件部署方式为CCE容器部署时,支持本操作。
    • 开启组件公网访问后,支持通过绑定了弹性公网IP的ELB以公网域名方式访问组件,以使用组件提供的服务。
    • 如果组件创建并部署成功后通过ELB灰度发布方式进行升级维护,需在本操作步骤开启组件公网访问。ELB灰度发布,请参考灰度发布(金丝雀)方式升级
    • 开启了公网访问的组件创建并部署完成后,您可以参考修改组件访问域名修改已设置的组件访问域名。
    • 默认不开启组件公网访问。组件创建并部署完成后,您也可以设置组件访问方式,请参考设置组件访问方式
    1. 设置“公网ELB”
      • 选择所选环境中已经存在的绑定了弹性公网IP的弹性负载均衡(ELB)资源。
      • 若不存在,请单击“去所选的环境里添加”,在环境编辑页面,单击“新增可选资源”,为该环境添加已创建的弹性负载均衡(ELB)资源。
      • 若需创建弹性负载均衡(ELB)资源,请参考创建共享型负载均衡器
        • 弹性负载均衡ELB需已绑定弹性公网IP,且必须与当前组件部署环境下纳管的计算资源处于相同的虚拟私有云VPC及其子网下。
        • 组件在不同部署环境下需绑定不同ELB,避免路由错误。
    2. (可选)设置“对外协议”
      • 选择“HTTP”,会存在安全风险,建议优先选择使用安全的“HTTPS”方式。
      • 选择“HTTPS”,单击“使用已有”选择已经创建的证书。

        若证书不存在,请单击“新创建”创建新的服务器证书。创建服务器证书请参考创建证书

    3. 设置“域名”
      • 选择“自动生成”,自动生成的域名仅有7天有效期。

        拉美-圣保罗一、拉美-墨西哥城二区域不支持自动生成域名。

      • 选择“绑定域名”,在输入框中输入自定义域名。
    4. 设置“监听端口”

      输入应用进程的监听端口号。

    图3 设置公网访问

  8. 导入或编辑组件YAML配置文件。

    组件部署方式为CCE容器部署且5“YAML模式”选择开启时,支持本操作。组件YAML配置文件中各参数的说明请参考Deployment

    • 导入组件YAML配置文件:单击“导入YAML文件”,导入已经编辑好的组件YAML配置文件。
    • 编辑组件YAML配置文件:根据实际业务需求编辑组件配置参数。

    您可以参考3“工作负载名称”说明,修改YAML配置中“name”值,重新自定义工作负载名称。组件创建并部署完成后,不再支持修改工作负载的名称。

  9. 单击“创建并部署”

    在组件“部署记录”页面,可查看部署日志,等待组件部署完成。

    图4 查看组件部署日志

  10. “资源”区域,设置组件所需资源。

    • 组件部署方式为CCE容器部署,请参考下表进行设置,其中带“*”标志的参数为必填参数。

      参数

      说明

      *资源需求

      组件无法调度到剩余资源小于申请值的节点上,配置方法请参考资源限制指南

      可以根据需要自定义“CPU配额”“内存配额”,设置组件运行可以使用的最大/最小CPU核数(Core)和内存数量(GiB)。如需修改,请勾选待修改项后输入新的配置值。

      不勾选表示不限制。

      *实例数

      设置运行在环境下的组件实例数,取值范围为[1,200]。

      *命名空间

      选择组件实例所在容器命名空间。

      图5 设置Kubernetes类型环境部署组件资源
    • 组件部署方式为虚拟机部署时,“资源类型”选择“弹性云服务器”,请勾选组件部署环境中已纳管的弹性云服务器;“资源类型”选择“弹性伸缩组”时,请先在“资源”下拉列表选择待使用的弹性伸缩组,再勾选该弹性伸缩组下的弹性云服务器用于部署组件。
      • 勾选的弹性云服务器需已经安装虚拟机Agent,请参考安装虚拟机Agent
      • 拉美-圣保罗一、拉美-墨西哥城二区域不支持弹性伸缩组。

  11. (可选)在“访问方式”区域,开启组件公网访问。

    • 开启组件公网访问后,支持通过绑定了弹性公网IP的ELB以公网域名方式访问组件,以使用组件提供的服务。
    • 开启了公网访问的组件创建并部署完成后,您可以参考修改组件访问域名修改已设置的组件访问域名。
    • 默认不开启组件公网访问。组件创建并部署完成后,您也可以设置组件访问方式,请参考设置组件访问方式
    单击,开启公网访问后,设置以下参数:
    1. 设置“公网ELB”
      • 选择所选环境中已经存在的绑定了弹性公网IP的弹性负载均衡(ELB)资源。
      • 若不存在,请单击“去所选的环境里添加”,在环境编辑页面,单击“新增可选资源”,为该环境添加已创建的弹性负载均衡(ELB)资源。
      • 若需创建弹性负载均衡(ELB)资源,请参考创建共享型负载均衡器
        • 弹性负载均衡ELB需已绑定弹性公网IP,且必须与当前组件部署环境下纳管的计算资源处于相同的虚拟私有云VPC及其子网下。
        • 组件在不同部署环境下需绑定不同ELB,避免路由错误。
    2. (可选)设置“对外协议”
      • 选择“HTTP”,会存在安全风险,建议优先选择使用安全的“HTTPS”方式。
      • 选择“HTTPS”,单击“使用已有”选择已经创建的证书。

        若证书不存在,请单击“新创建”创建新的服务器证书。创建服务器证书请参考创建证书

    3. 设置“域名”
      • 选择“自动生成”,自动生成的域名仅有7天有效期。

        拉美-圣保罗一、拉美-墨西哥城二区域不支持自动生成域名。

      • 选择“绑定域名”,在输入框中输入自定义域名。

  12. (可选)在“时区”区域,设置容器“时区”

    组件部署方式为CCE容器部署时,可以设置。

    容器的时区,默认和容器节点所在区域时区一致。

  13. (可选)设置“高级设置”

    • 组件部署方式为CCE容器部署,具体操作请参考下表。

      操作类型

      操作名称

      操作说明

      微服务引擎

      绑定微服务引擎

      绑定微服务引擎,将组件接入微服务引擎。

      说明:

      以ServiceComb 2.7.8及以后版本或Spring Cloud Huawei 1.10.4-2021.0.x及以后版本微服务开发框架开发的组件,接入微服务引擎后,在微服务引擎下创建微服务实例时,会在MicroServiceInstance参数的properties参数项中注入以下属性:

      1. CAS_APPLICATION_ID:组件所属应用ID。
      2. CAS_COMPONENT_NAME:组件名称。
      3. CAS_ENVIRONMENT_ID:组件部署环境ID。
      4. CAS_INSTANCE_ID:组件实例ID。
      5. CAS_INSTANCE_VERSION:组件实例版本。

      MicroServiceInstance参数说明,请参考MicroServiceInstance

      1. 展开“高级设置 > 微服务引擎”。
      2. 单击“绑定微服务引擎”
      3. 选择环境下已绑定的微服务引擎实例。
      4. 单击“确定”
        说明:

        鼠标移动到已绑定的微服务引擎,可执行以下操作:

        • 重新绑定微服务引擎:单击,重新选择待绑定的微服务引擎,单击“确定”
        • 删除已绑定微服务引擎:单击,删除已绑定微服务引擎。
      5. (可选)如果绑定了微服务引擎引擎专享版,选择“插件类型”
        • Mesher:选择Mesher插件,输入应用进程的监听端口号,可开启多语言接入Mesher服务网格,使用Mesher将非微服务框架开发的组件接入微服务引擎。
        说明:
        • 选择Java、Tomcat或者Docker技术栈开发的非微服务框架组件,您可根据实际业务需要开启Mesher,使用Mesher将组件接入微服务引擎进行微服务注册发现。
        • 选择Python、Php或者Node.js技术栈开发的组件,强制开启Mesher,将组件接入微服务引擎进行微服务注册发现。

      分布式缓存

      绑定分布式缓存

      在分布式系统中,通过分布式缓存服务,提供可扩展和可靠的用户会话管理。

      展开高级设置 > 分布式缓存,绑定分布式缓存,请参考设置分布式缓存

      云数据库

      绑定云数据库

      应用数据持久化存储,需要用到云数据库。

      展开高级设置 > 云数据库,绑定云数据库,请参考设置云数据库

      组件配置

      设置环境变量

      环境变量是应用运行环境中设定的一个变量,可以在组件部署后修改,为应用提供极大的灵活性。组件下设置的环境变量,属于局部环境变量,仅对该组件起作用。

      展开高级设置 > 组件配置,设置“环境变量”,请参考设置组件环境变量

      部署配置

      设置启动命令

      设置“启动命令”后,容器将会以该启动命令启动。

      展开高级设置 > 部署配置,设置“启动命令”,请参考设置组件生命周期

      设置数据存储

      存储是为应用提供存储的组件,支持多种类型的存储,同一个组件可以使用任意数量的存储。

      展开高级设置 > 部署配置,设置“数据存储”,请参考设置数据存储

      设置生命周期

      容器部署的组件,ServiceStage提供了回调函数,在应用的生命周期的特定阶段执行调用,比如组件在停止前希望执行某项操作,就可以注册相应的钩子函数。

      展开高级设置 > 部署配置,设置“生命周期”,请参考设置组件生命周期

      设置调度策略

      容器部署的组件,根据组件的部署特性,ServiceStage把组件拆解成最小的部署实例。应用调度器实时监控应用的实例信息,当发现有新的pod产生需要调度时就会对集群中所有的剩余资源(计算、存储、网络)进行计算,最后得出最适合的调度目标节点。

      展开高级设置 > 部署配置,设置“调度策略”,请参考设置组件实例调度策略

      运维监控

      设置日志采集

      容器部署的组件,ServiceStage支持配置应用日志策略,你可以在应用运维管理AOM中查看相关运行日志。在部署组件过程中或者组件已经部署,都可以配置日志策略。如果不做任何配置,则系统默认会采集应用标准输出日志。

      展开高级设置 > 运维监控,设置“日志采集”,请参考设置应用日志策略

      设置健康检查

      健康检查是指容器部署的组件在运行过程中,根据需要,定时检查应用健康状况。

      展开高级设置 > 运维监控,设置“健康检查”,请参考设置健康检查

      设置性能管理

      应用性能管理可协助您快速进行应用问题定位与性能瓶颈分析,改善体验。ServiceStage支持在部署组件过程中或者组件已经部署后设置应用性能管理。

      技术栈类型为Java、Tomcat或者Docker的组件,支持设置应用性能管理。

      展开高级设置 > 运维监控,设置“性能管理”,请参考设置应用性能管理

      设置自定义指标监控

      ServiceStage支持获取您的自定义指标,您可使用该方式上报自定义指标。在部署组件过程中或者组件已经部署完成,都可以设置组件自定义指标。云容器引擎部署的组件,支持设置组件自定义指标监控。

      展开高级设置 > 运维监控,设置“自定义指标监控”,请参考设置组件自定义指标监控

      图6 设置Kubernetes类型环境部署组件高级设置
    • 组件部署方式为虚拟机部署,具体操作请参考下表。

      操作名称

      操作说明

      设置环境变量

      环境变量是应用运行环境中设定的一个变量,可以在组件部署后修改,为应用提供极大的灵活性。组件下设置的环境变量,属于局部环境变量,仅对该组件起作用。

      设置“环境变量”,请参考设置组件环境变量

      绑定微服务引擎

      技术栈类型为Java、Tomcat的组件,支持绑定微服务引擎,可以用于微服务治理。

      1. 单击“绑定微服务引擎”
      2. 选择环境下已绑定的微服务引擎实例,单击“确定”
      图7 设置虚拟机类型环境部署组件高级设置

  14. 单击“创建并部署”

    在组件“部署记录”页面,可查看部署日志,等待组件部署完成。

    图8 查看组件部署日志