部署中心应用实例

更新时间:
复制 MD 格式

已完成版本发布或处于研发过程的中心应用,您可以将其部署到指定的容器环境中,进行运行时调试或供前端应用使用。本文介绍如何部署中心应用实例、配置实例网络策略、以及如何查看其部署记录和部署日志。

前提条件

已在项目中创建环境。关于如何创建环境,请参见创建和管理项目环境

部署中心应用实例

  1. 登录BizWorks,在选择平台下拉列表中选中微服务开发平台

  2. 单击页面右上角a7.png图标或其文本框区域,在下拉列表中单击目标项目名称后,单击应用页签。在应用列表页面单击目标中心应用名称。image

  3. 在目标中心应用左侧导航栏中,选择应用部署 > 实例管理

  4. 应用部署页面,选择需要部署的环境,单击目标环境下的虚线框区域。

    说明

    应用部署页面不仅支持显示一个环境下的多个实例,以及每个实例下的工作负载,而且能够显示每个工作负载的类型。

    在对应环境的部署实例区域,单击创建部署实例即可新建部署实例;已创建的实例会显示实例 ID、执行状态、操作人及操作时间等信息。

    只有企业级用户、项目负责人和应用负责人账号角色,既能看到开发环境测试环境下的环境信息,也能看到预发环境生产环境下的环境信息,并能进行部署、更新实例等操作。其他账号角色只能看到开发环境测试环境下的环境信息,在相应的环境下也能进行部署、更新实例等操作。

    关于BizWorks的账号体系的详细信息,请参见平台账号和权限说明

  5. 如果您在创建项目时没有配置用于存放构建中心应用的镜像,界面会出现未配置镜像仓库提示,请您先配置镜像仓库。

    关于如何配置用于存放构建中心应用的镜像,请参见配置镜像仓库

  6. 新建实例部署-部署配置面板,完成部署配置,单击下一步。在弹出的 新建实例部署 - 部署配置 页面中,除应用来源和流水线外,还需配置以下内容:部署策略 支持 默认策略(按滚动方式发布,每次启动一个新副本,就绪后停掉一个老副本,直到全部完成)和 自定义策略网络配置 区域提示实例首次部署不包含网络配置,请在部署成功后添加实例的网络访问策略;资源配置 区域可设置 实例总数 及单实例资源配额,包括 CPU资源预留Mem资源预留CPU资源限制Mem资源限制

    相关配置项说明请参见下表。

    配置项

    说明

    应用来源

    选择应用版本下拉列表中选择目标应用版本,您可以选择已发布或开发中的版本。

      • 如果选择代码,且选择的版本状态为开发中,则还需要选择代码分支,设置Commit ID(非必填,不填写Commit ID时,默认使用分支的最新版本)。

      • 如果选择镜像,则单击选择镜像,在选择镜像对话框中,选中目标镜像后,单击确定。如果选择镜像,则在选择镜像弹窗中,根据生成时间代码信息镜像Tag芯片架构等信息选择目标镜像,然后单击确定

      说明

      选择镜像对话框中列出的镜像记录范围来自流水线运行(详见查看镜像列表信息),平台同时会对镜像记录自动筛选,筛选条件为“镜像生成时的应用版本=此次实例部署的应用版本,镜像生成时的芯片架构=此次实例部署的目标部署环境的芯片架构”。

      • 根据版本发布时选择的内容来决定使用何种来源,版本发布过程详见创建和发布中心应用版本

      • 版本发布时选择代码方式,则部署该版本时需要进行完整代码编译构建和部署过程。

      • 版本发布时选择镜像方式,则部署该版本时仅部署镜像。

      说明

      推荐版本发布时选择镜像方式。

    流水线

    选择流水线下拉列表中,选择目标流水线。支持三类流水线,详见管理中心应用流水线

    部署配置

    • 部署策略

      • 默认策略:按照滚动方式进行发布,每次启动一个新副本,就绪后停掉一个老副本,直到全部完成。

      • 自定义策略:可选择Pod按百分比

    • 高级选项:单击添加,完成相关配置项设置。

      容忍度:支持选择目标环境上已经部署成功的记录为基础,在其基础上确定应用模板需要的镜像信息、部署参数等。

      容忍度配置项包含 Key操作符Value效果时间(秒)字段,可单击删除移除已添加的配置行。

      KeyValue的配置规则如下:

      • Key

        • 不能超过253个字符。

        • 支持字母、数字、短划线(-) 和半角句号(.)。

        • 需以字母、数字字符(a~z、0~9、A~Z)开头和结尾。

      • Value

        • 不能超过63个字符。

        • 支持字母、数字、短划线(-)和半角句号(.)。

        • 如果标签值不为空,则需以字母、数字字符(a~z、0~9、A~Z)开头和结尾。

    网络配置

    • 实例首次部署不包含网络配置,需要在部署成功后添加实例的网络访问策略。

    • 如果部署实例的环境所属的集群为阿里云BizWorks Serverless公有版时,则需要在实例部署或更新时指定实例网卡的安全组支持使用环境的默认安全组使用现有安全组

    资源配置

    配置实例总数单实例资源配额

    • 如果您部署实例的环境所属的集群为阿里云容器服务Kubernetes版(ACK) 阿里云容器服务Kubernetes版(ASK)时,您可填写CPU和内存配额:

      • CPU资源的约束和请求以CPU为单位,如果数值为0.1则等价为100 mCPU;

      • 内存的约束和请求以字节为单位,如果数值为1024 MiB则等价为1024 MB。资源限制需大于资源预留。

    • 如果您部署实例的环境所属的集群为阿里云BizWorks Serverless集群,您只能选择vCPU内存的已有配额选项。

  7. 新建实例部署 - 环境配置面板,完成环境配置后,单击开始部署

    1. 可选:设置生命周期管理

      7df008c2411">开启 生命周期管理 开关后,可配置以下字段:启动命令启动参数(单击 添加 按钮添加)、启动后命令(PostStart)(格式示例:["\/bin\/sh","-c","echo Hello from this PostStart handler"])、停止前命令(PreStop)(格式示例:["\/bin\/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"])。

重要

由于Docker运行时仅支持一条ENTRYPOINT命令,因此,所设置的启动命令将覆盖在创建容器Docker镜像时所定义的ENTRYPOINTCMD命令。 如果您不了解原Dockerfile镜像的CMDENTRYPOINT信息,建议您不要自定义启动命令和启动参数,错误的自定义命令会导致应用部署失败。

配置项

说明

启动命令

在启动命令文本框中输入启动命令,例如:nginx。

启动参数

每个启动参数单独占据一个文本框。例如:在文本框中输入参数-g,然后单击启动参数文本框下的添加,在新增的文本框中输入参数daemon off。

启动后命令(PostStart)

请参考K8sPostStartcommand命令的格式填写,例如:["/bin/sh","-c","echo Hello from this PostStart handler"]。更多信息,请参见Attach Handlers to Container Lifecycle Events

停止前命令(PreStop)

请参考K8sPreStopcommand命令的格式填写,例如:["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]。更多信息,请参见Attach Handlers to Container Lifecycle Events

  • 可选:设置环境变量环境变量配置区域,开启右侧开关后,单击添加按钮可新增环境变量,每条变量需填写 KeyType(默认为自定义)和 Value 三个字段。

    支持三种Value类型:

    • 自定义:支持批量配置自定义变量,批量配置后会覆盖列表中所有自定义类型的环境变量。单击批量添加自定义变量,在弹出的对话框中输入变量。仅支持对"自定义"方式的Value进行批量设置,支持Java.properties格式,#!的注释内容会被自动忽略。每行表示一组key、value,格式为key=valuekey = value。key支持英文大小写、数字、-_,不能以数字开头;value支持为空,内容需满足Native/ASCII要求。

    • ConfigMapSecret:支持引用实例当前部署环境下的ConfigMapSecret中的Key。

  • 可选:设置存储

    设置容器运行环境中需要的外部存储配置。

    • 存储类型:支持PVCCONFIGMAPSECRET类型。

    • 使用PVC类型的存储时,请您确保使用的PVC没有被其他负载独占使用。

    • 您在指定环境中部署需要使用的PVC时,请先在此环境对应的K8snamespace中手动创建PVC,PVCaccessModes如果是指定模式,系统会按照K8s规范进行限制。更多信息,请参见persistent-volumes

    • 挂载源:业务中台基础框架工具暂不支持托管PVC相关资源,如果您在当前应用部署集群中没有可用的PVC,请前往相应的集群创建PVC。具体操作,请参见创建持久化存储卷声明

    • 容器中的路径:您需自定义容器中的文件路径。

    说明

    部署实例的环境所属的集群为阿里云BizWorks Serverless集群时,暂不支持PVC。

  • 可选:设置健康检查

    • Liveness配置Readiness配置页签,分别配置以下参数:

      • initialDelaySeconds:表示开始探测容器的延迟时间。当该参数值设置为0,表示在容器启动后立即开始探测。

        Liveness配置页签下,该参数的默认值为60;在Readiness配置页签下,该参数的默认值为10,单位为秒(s)。

      • PeriodSeconds:表示探测容器的周期。当该参数值设置为10,表示每隔10s探测一次容器。默认值为10,单位为秒(s)。

      • SuccessThreshold:表示探针探测成功的阈值。在达到该次数时,表示成功。默认值为1,表示只要成功一次,则算成功。

      • TimeoutSeconds:表示探测时容器响应的最大超时时间。当该参数值设置为1,表示容器必须在1s内进行响应,否则这次探测记作失败。默认值为1,单位为秒(s)。

      • FailureThreshold:表示探针探测失败的阈值。在达到该次数时,表示失败。默认值为3,表示只要失败3次,则重启容器。

    • 配置选择模式:

      • Path:健康检查的探针对应的接口路径,例如:/actuator/health/liveness

      • Port:部署应用的端口号。例如:如果您选择的应用实例类型是中心中台应用,端口号可以配置为8080;如果您选择的应用实例类型是托管应用,端口号可以配置为8083。

      • Scheme:支持HTTP协议。

      • HTTPHeaders:HTTP请求头信息,包括名称变量值

  • 可选:设置应用监控

    支持为应用自动添加应用监控所需的Agent。

    配置项

    说明

    类型

    阿里云ARMS。使用时将会涉及到费用,请参见计费概述

    ARMS LicenseKey

    接入ARMS时,需要填写您的LicenseKey。访问ARMS控制台的接入中心,点击Java类型的后端应用,可以找到LicenseKey。

    ARMS AppName

    AppName是您在ARMS中的应用名称,BizWorks默认生成的应用名称规则为{项目编码}-{应用编码}-{环境编码},您也可以自行定义。

  • 可选:设置标签

    单击添加按钮,在表格中填写标签的 keyvalue。展开高级选项,在打标位置下拉框中选择打标目标(默认为 Deployment 和 Pod)。

    DeploymentPod添加K8s标签(Label)。平台仅支持管理通过BizWorks添加的标签。

    说明

    部署实例的环境所属的集群为阿里云BizWorks Serverless集群时,不支持本项配置。

  • 页面提示创建成功,同时环境中新增一个正在部署中的实例卡片。完成配置后,在测试环境卡片中可查看对应的部署记录,包括环境名称、实例 ID、操作人及操作时间等信息,部署状态显示为执行中

    配置实例网络策略

    实例部署成功后,此时该实例并不能被访问,需要您配置相关网络策略。在应用部署实例页面,单击目标实例卡片进入到实例详情,在网络策略中新建访问策略。

    说明

    平台主要管理应用实例的入访请求,实例的出访请求(例如应用实例访问互联网)主要由容器集群所在的网络决定。

    支持创建多条实例的访问策略,提供预置场景和自定义两种方式创建,选择后可根据引导完成网络策略的创建。

    创建方式

    说明

    预置场景:共享能力中心

    • 适用场景:适用于需要对API接口进行统一管控的场景,该方式可将中心应用接口管理中的API接口定义自动发布到API网关上进行统一管理。

    • 网络描述:

      • 应用实例本地监听TCP 8080;

      • 集群内其他应用可通过HTTP 80访问接口;

      • 集群外访问需要通过API网关访问;

      • 应用的API接口定义会自动发布到API网关。

    • 使用条件:目标部署环境已经开启“API网关”的相关配置。

    预置场景:HTTP服务

    • 适用场景:适用于提供HTTP服务的应用,如Web页面,或不需要使用API网关进行管理的API接口调用。

    • 网络描述:

      • 应用实例本地监听TCP 8080;

      • 集群内其他应用可通过HTTP 80访问接口;

      • 集群外访问通过Ingress路由访问,自动生成访问地址。

    • 使用条件:无。

    自定义

    自定义配置。

    查看中心应用实例的部署记录和部署日志

    1. 应用部署页面,单击目标实例卡片,在应用部署实例面板的部署记录区域,查看部署记录。部署记录表格包含ID类型状态操作人完成时间等列,操作类型包括回滚、重启、启动、停止、缩容、扩容、更新、创建等,每条记录可单击详情日志查看详细信息。

    2. 单击目标部署记录ID右侧日志,您可查看此次部署过程的流水线详细日志。

      说明

      仅支持查看实例的部署类型为更新创建的日志信息。

      查看结果如下:

      • 如果部署流水线选择的默认流水线,则在实例变更记录对话框中,可查看流水线各阶段(代码检出编译构建部署)的执行状态。右侧部署日志区域展示 Docker 镜像推送及部署进度,部署状态依次经历准备应用部署[成功]启动应用部署[待部署]检查部署状态[部署中]检查部署状态[部署成功],表示流水线部署完成。

      • 如果部署流水线选择的三方流水线,则流水线部署日志弹窗顶部显示流水线信息(如镜像类流水线)、流水线实例ID流水线实例运行状态(如SUCCEEDED),主体区域展示构建过程的滚动日志输出。

        您可以单击查看更多运行记录,在流水线实例页面查看更多运行记录。

      • 如果部署流水线选择的自定义流水线,则自定义流水线部署日志如下所示。

        本文以增加了流水线控制任务的流水线为例,说明自定义流水线的应用部署日志详情。

        实例变更记录 对话框中,流水线依次展示 代码检出Maven制作镜像流水线控制部署 五个阶段,各阶段均显示绿色对勾表示已完成。左侧面板选中 部署到目标环境 节点,右侧日志区域显示 Docker 镜像推送日志及应用部署状态,最终输出"检查部署状态[部署成功]"。

        • 处于审批流的部署日志详情如下。在 实例变更记录 面板中,流水线进度依次展示 代码检出Maven制作镜像流水线控制部署 各阶段的执行状态,当前 流水线控制 阶段显示为 待审批

          单击查看进度,在进度详情页面,您可以查看具体访问进度。审批流程详情页展示流程实例ID、创建时间、创建人及运行状态(当前为处理中)。业务介绍区域显示关联的中心应用信息,可单击查看链接查看详情。审批进度以时间线形式呈现:开始节点已由发起人完成,当前处于人工审批节点,审批方式为会签(需全部通过),显示2人待审批。页面底部提供同意拒绝按钮供审批操作。

          您也可以在部署实例详情面板的部署记录区域,单击目标部署记录右侧的详情。在目标部署记录的部署记录详情面板,单击审批进度,进入审批进度详情页。在部署记录列表中,找到目标部署记录,单击其右侧的详情查看部署记录的详细信息。部署记录详情包含操作类型状态部署人完成时间部署环境部署内容部署流水线部署策略等字段,状态栏右侧的审批进度按钮即为进度查看入口。

        • 如果您想终止自定义流水线的部署流程,单击实例变更记录对话框中的终止流程。在二次确认对话框中,单击确定。部署日志详情页面展示流水线阶段条(包括代码检出Maven制作镜像流水线控制部署),各阶段通过状态图标标识已完成、进行中或未开始。左侧可选择具体构建步骤,右侧区域展示对应的构建日志输出。页面右上角提供终止流程按钮,可随时终止当前流水线执行。

    3. 可选:查看指定部署记录的详细部署配置。
      1. 单击目标部署记录ID右侧的详情
      2. 部署记录详情面板,您可以查看部署环境部署内容资源规格部署策略等信息。1
      3. 如果您需要回滚到此版本,则单击回滚到此版本。在回滚应用部署对话框中,设置回滚策略和发布量后,单击回滚1