更新时间:2024-11-13 GMT+08:00

创建批量克隆发布单

如果存在多个微服务组件需要在容器环境下部署时,且各微服务组件的配置基本相同,例如:调度策略、伸缩策略、数据存储、日志存储、生命周期等配置都一致,只存在细微的差异需要修改。如果每个组件都在创建并部署时都按需配置一遍,存在操作复杂、容易出错的问题。ServiceStage提供了创建批量克隆发布单能力,通过向发布单添加您当前业务环境下已经存在的类似组件解决了此类问题,提升了组件部署效率和使用体验。

  1. 登录ServiceStage控制台。
  2. 选择发布管理 > 创建发布单
  3. 参考下表填写发布单基本信息,其中带“*”标志的参数为必填参数。

    参数名称

    参数说明

    *发布单名称

    发布单的名称。

    长度2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或数字结尾。

    描述

    发布单描述信息,长度不超过128个字符。

  4. “操作类型”选择“批量克隆”
  5. 设置“激进策略”

    单击,可开启“激进策略”。遇到组件发布失败,会继续发布剩余组件。

  6. 单击“添加组件”
  7. 勾选待加入发布单的组件,单击“确定”

    • 同一个批量克隆发布单下,支持添加64个组件。
    • 仅支持选择容器部署方式部署的运行状态为“运行中”“未就绪”“停止”“未知”“异常”的组件。

  8. 根据实际业务需要参考下表重新设置各组件版本配置信息。

    参数名称

    参数说明

    组件名称

    组件的名称。

    长度2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾。

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

    组件版本

    组件版本号。

    • 默认以您完成7操作的时间来生成版本号,格式为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。
    说明:

    您可以执行以下操作,批量同步设置组件版本号:

    1. 鼠标移动到指定组件的“组件版本”输入框,单击
    2. 勾选需要同步配置版本号的其他组件。
    3. 单击“确定”

    所属应用

    选择组件所属应用。您可以执行以下操作,批量同步设置组件所属应用:

    1. 鼠标移动到指定组件“所属应用”下拉列表框,单击
    2. 勾选需要同步配置所属应用的其他组件。
    3. 单击“确定”

    所属环境

    选择组件部署环境,仅可选择“Kubernetes”类型环境。

    须知:

    如果组件已经绑定了指定的微服务引擎、分布式缓存或云数据库实例,而为该组件重新选择的环境下并未绑定这些指定的实例,则会在高级配置预检查中报错。

    您可以执行以下操作,批量同步设置组件所属环境:

    1. 鼠标移动到指定组件“所属环境”下拉列表框,单击
    2. 勾选需要同步配置所属环境的其他组件。
    3. 单击“确定”

      重新设置组件所属环境后,该组件所属集群会同步变更为重新选择的环境下绑定的集群,所属命名空间会同步变更为重新选择的环境下绑定集群的default命名空间。

    所属集群

    选择组件部署和运行的CCE集群。

    您可以执行以下操作,批量同步设置组件所属集群:

    1. 鼠标移动到指定组件“所属集群”下拉列表框,单击
    2. 勾选需要同步配置所属集群的其他组件。
    3. 单击“确定”

      批量同步设置组件所属集群后,仅选择的组件所属环境下绑定了选择的集群,该组件所属集群才会同步变更,且所属命名空间会同步变更为重新选择的集群的default命名空间。

    所属命名空间

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

    您可以执行以下操作,批量同步设置组件所属命名空间:

    1. 鼠标移动到指定组件“所属命名空间”下拉列表框,单击
    2. 勾选需要同步配置所属命名空间的其他组件。
    3. 单击“确定”

      批量同步设置组件所属命名空间后,仅所选组件的所属集群下存在选择的命名空间,该组件所属命名空间才会同步变更。

    镜像包

    单击

    • 重新选择组件来源,请参考组件来源说明
    • 您可以自定义“容器名称”

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

    实例数

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

    您可以执行以下操作,批量同步设置组件实例数:

    1. 鼠标移动到指定组件“实例数”输入框,单击
    2. 勾选需要同步配置组件实例数的其他组件。
    3. 单击“确定”

    部署顺序

    指定组件在所有待加入发布单组件里面的部署次序。

    • 如果已选组件之间存在依赖关系,例如某组件的启动需要依赖其他组件,则需要设置“部署顺序”,使被依赖的组件优先被部署。

      例如,待加入发布单的A、B、C三个组件,A组件的启动依赖于B、C组件。因此,需要将B、C组件的“部署顺序”设置为1,将A组件的“部署顺序”设置为2。

    • 如果待加入发布单的组件之间不存在依赖关系,则“部署顺序”可以保持默认,所有组件会同批次被部署。

  9. 根据实际业务需要设置组件构建参数。

    组件技术栈类型为Java、Tomcat、Node.js、Python、Php时可以设置。
    1. 单击目标组件所在行“操作”列的“构建”
    2. 参考下表设置构建参数,其中带“*”标志的参数为必填参数。

      参数

      说明

      *编译命令

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

      • 使用默认命令或脚本:优先执行代码根目录下的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的固定节点上,保证组件构建、部署成功。

      • “构建环境”选择“使用独立环境构建”时,需要设置过滤节点标签,将构建任务下发到独立构建环境下的node节点,保证该节点和当前组件部署环境下node节点CPU架构一致。
      • “构建环境”选择“使用当前环境构建”时,如果环境下有node节点和master节点CPU架构不一致,需要设置过滤节点标签,将构建任务下发到和master节点CPU架构一致的node节点上。

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

    3. 单击“确定”

  10. 单击目标组件所在行“操作”列的“高级配置”
  11. 单击,开启公网访问。

    1. 设置“公网ELB”
      • 选择所选环境中已经存在的绑定了弹性公网IP的弹性负载均衡(ELB)资源。
      • 若不存在,请单击“去所选的环境里添加”,在环境编辑页面,单击“新增可选资源”,为该环境添加已创建的弹性负载均衡(ELB)资源。
      • 若需创建弹性负载均衡(ELB)资源,请参考下表根据实际应用场景进行创建。

        使用场景

        参考章节

        使用域名访问应用

        ELB灰度发布

        参考购买独享型负载均衡器创建“规格”为“应用型”的ELB

        • 弹性负载均衡ELB需已绑定弹性公网IP,且必须与当前组件部署环境下纳管的计算资源处于相同的虚拟私有云VPC及其子网下。
        • 组件在不同部署环境下需绑定不同ELB,避免路由错误。
    2. 设置“对外协议”
      • 选择“HTTP”,会存在安全风险,建议优先选择使用安全的“HTTPS”方式。
      • 选择“HTTPS”,单击“使用已有”选择已经创建的证书。

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

    3. 设置“域名”
      • 选择“自动生成”,自动生成的域名仅有7天有效期。
      • 选择“绑定域名”,在输入框中输入自定义域名。
    4. 设置“监听端口”

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

    图1 设置公网访问

  12. 设置组件的“云服务配置”参数,请参考管理容器部署组件云服务配置

    • 您可以执行以下操作,批量同步为组件绑定微服务引擎、分布式缓存或云数据库:
      1. 鼠标移动到指定组件已绑定的微服务引擎、分布式缓存或云数据库,单击
      2. 勾选需要同步配置的其他组件。
      3. 单击“确定”

        仅所选组件的所属环境下已绑定了选择的微服务引擎、分布式缓存或云数据库,才会同步变更。否则,保持不变。

    • 您可以执行以下操作,批量为组件同步删除微服务引擎、分布式缓存或云数据库:
      1. 鼠标移动到指定组件已绑定的微服务引擎、分布式缓存或云数据库,单击
      2. 单击“同步删除”,勾选需要同步配置的其他组件,单击“确定”

        如果仅为当前组件删除已绑定的微服务引擎、分布式缓存或云数据库,单击“取消”

    • 您可以执行以下操作,为指定组件重新绑定微服务引擎、分布式缓存或云数据库:
      1. 鼠标移动到指定组件已绑定的微服务引擎、分布式缓存或云数据库,单击
      2. 重新选择当前环境下已纳管的微服务引擎、分布式缓存或云数据库,单击“确定”

  13. 设置组件的“容器配置”参数,请参考管理容器部署组件容器配置
  14. 设置组件的“高级配置”参数,请参考管理容器部署组件高级配置
  15. 单击“确定”
  16. 请参考下表根据是否发布发布单执行后续操作。

    是否发布发布单

    操作方法

    1. 单击“完成并执行”,系统会自动进行高级配置预检查,检查各组件的高级配置是否正确。
    2. 如果高级配置预检查报错,请执行以下操作重新配置后再执行后续操作。
      1. 请在弹出的对话框确认问题后,单击“确定”
      2. 单击报错组件“操作”列的“高级配置”
      3. 参考管理容器部署组件云服务配置~管理容器部署组件高级配置,根据报错情况重新设置组件高级配置参数。
    3. 如果高级配置预检查通过,发布单中的组件会按照发布单的配置批量完成部署。

      您可以查看该发布单的发布记录和发布单信息,执行克隆批量克隆发布单删除发布单操作。

    1. 单击“创建完成”,系统会自动进行高级配置预检查,检查各组件的高级配置是否正确。
    2. 如果高级配置预检查报错,请执行以下操作重新配置后再执行后续操作。
      1. 请在弹出的对话框确认问题后,单击“确定”
      2. 单击报错组件“操作”列的“高级配置”
      3. 参考管理容器部署组件云服务配置~管理容器部署组件高级配置,根据报错情况重新设置组件高级配置参数。
    3. 如果高级配置预检查通过,生成状态为“待发布”的发布单。

      “发布管理”页面,您可以查看发布单信息,执行发布待发布的发布单克隆批量克隆发布单编辑批量克隆发布单删除发布单操作。