部署代码类型组件实例

本文介绍如何部署代码类型组件实例,以及如何查看其部署记录和部署日志。

前提条件

部署代码类型组件实例

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

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

  3. 在目标托管应用导航栏中,选择部署管理 > 应用部署

  4. 应用部署页面,选择需要部署的环境,单击目标环境卡片右上角的1图标。1

    说明

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

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

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

  5. 创建部署实例 - 选择部署组件面板,选中目标代码类型组件,单击下一步1

    说明

    当前环境下已部署的组件不能重复创建部署。

  6. 创建实例部署 - 部署配置面板,完成配置如下图所示的相关参数后,单击下一步1

    配置项

    说明

    组件来源

    支持分支Tag模式,根据您的需求分别在对应的下拉框中选择对应的分支或Tag。

    如果您选择分支,可设置Commit ID(非选填)。

    说明

    Commit ID为空时,则默认使用该分支的最新版本,实例部署成功后平台会将代码检出时的Commit ID进行记录;实例更新部署时,Commit ID默认也是为空,如需指定版本,需要您再次设置。

    流水线

    选择流水线下拉列表中,选择目标流水线。

    • 默认流水线:BizWorks内置的流水线,包含拉取代码、编译代码、构建镜像和部署应用等基本功能。

    • 自定义流水线:下拉列表中列出的自定义流水线,同时满足了以下条件:

      • 自定义流水线关联的组件是待部署组件。

      • 自定义流水线需包含部署到目标环境任务步骤,且目标部署环境类型中,包含待部署组件部署的环境类型。关于如何新增流水线任务步骤,请参见新增自定义流水线

      说明

      如果您可以找到有满足条件的自定义流水线,则将无法使用默认流水线(即默认流水线不显示);如果您未找到满足条件的自定义流水线,则仍然可以使用默认流水线部署应用。

    • 三方流水线

      • 您可以通过集成三方流水线产品,使用DevOps中更多的能力。如果您已经为应用添加三方流水线,则可以选择三方流水线部署应用实例。关于如何集成三方流水线,请参见三方流水线集成概述

      • 如果您已经开启项目流水线配置开关,则在部署流水线下拉列表中,不会出现默认流水线的选项。关于如何打开项目流水线配置开关,请参见创建和管理三方流水线连接配置

    部署配置

    • 部署策略

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

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

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

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

      1

      KeyValue的配置规则如下:

      • Key

        • 不能超过253个字符。

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

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

      • Value

        • 不能超过63个字符。

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

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

    网络访问

    配置访问部署实例规则。

    BizWorks针对常见的网络访问需求,在Kubernetes的Ingress、Service的网络模型基础上进行了简化,方便研发团队快速进行部署和调试。如果您有更多的网络访问需求,可以在部署完成后,直接在纳管集群上进行相关配置。网络访问支持两类简化场景:

    • 仅集群内被调用:集群内使用Service名称进行实例调用。

    • 集群内外均可被调用:集群外使用HTTP协议或其他TCP/UDP协议调用实例,集群内同样使用Service名称调用实例。

    资源配置

    配置实例总数单实例资源配额。其中,CPU资源的约束和请求以CPU为单位,如果数值为0.1则等价为100 mCPU;内存的约束和请求以字节为单位,如果数值为1024 MiB则等价为1024 MB。资源限制需大于资源预留。

    配置网络访问

    1. 创建实例部署 - 部署配置面板的网络访问区域,单击+网络访问配置1

    2. 设置容器开放的协议(支持TCPUDP)和端口。

    3. 选择允许的被调用范围

      • 如果您选中仅集群内被调用,则使用自动生成的Service名称和端口进行实例的调用。1

      • 如果您选中集群内外均可被调用集群外调用方式选中HTTP(使用HTTP方式供集群调用)时,支持域名+Path的路由方式。平台提供两种典型的快速配置(快速配置(独立域名)快速配置(Path匹配)),您可以单击调用域名的文本框,在下拉列表中选择目标调用域名。1

        Path配置规则:

        • 支持大小写英文字母、数字和字符_@#%*./-组合。

        • 需以正斜线(/)开头,不能以正斜线(/)结尾,Path中不支持多个正斜线(//)在一起。

        • 最长不超过50个字符。

        说明
        • 如果您需要使用Path(即Path内容不是正斜线(/)时)进行路由时,平台将会默认增加Ingress的Rewrite规则,即将启用Rewrite参数设置为

        • 如果您不需要使用Path(即Path内容是正斜线(/)时)进行路由时,平台将会默认不增加Ingress的Rewrite规则,即将启用Rewrite参数设置为,且不显示启用Rewrite参数。

        • Rewrite的支持范围:目前平台仅支持Kubernetes提供的Nginx Ingress的Rewrite规则,暂不支持App Root。更多信息,请参见Rewrite - NGINX Ingress Controller

        • 不支持将调用域名配置为环境域名,Path配置为正斜线(/)的场景。

      • 如果您选中集群内外均可被调用集群外调用方式选中TCP/UDP(使用非HTTP方式供集群调用),则平台会使用Kubernetes的NodePort方式让实例被集群外调用。1

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

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

    2. 可选:设置环境变量

    3. 可选:设置存储

    4. 可选:设置健康检查

    5. 可选:设置标签

    配置项

    说明

    生命周期管理

    重要

    如果您不了解原Dockerfile镜像的CMD或ENTRYPOINT信息,建议您不要自定义启动命令启动参数,错误的自定义命令会导致应用部署失败。

    由于Docker运行时仅支持一条ENTRYPOINT命令,所以在创建实例部署 - 环境配置更新实例部署 - 环境配置页面设置的启动命令会覆盖在制作容器Docker镜像时设置的ENTRYPOINT和CMD命令。

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

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

    环境变量

    环境变量支持批量配置。

    您可以自定义添加配置。例如,TZ:代表时区,取值为Asia/Shanghai

    存储

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

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

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

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

    说明
    • 系统不支持EDAS类型的容器集群设置容器运行环境中需要的外部存储配置,EDAS类型的容器集包括:阿里云企业级分布式应用服务(EDAS)1阿里云企业级分布式应用服务(EDAS)1。更多关于集群的信息,请参见接入集群

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

    健康检查

    • 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请求头信息,包括名称变量值

    标签

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

    页面提示创建成功,同时环境中新增一个正在执行中的实例组件卡片。1

查看代码类型组件实例的部署记录和部署日志

说明

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

  1. 应用部署页面,单击目标实例组件卡片,在目标实例组件面板的部署记录区域,查看部署记录。1

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

    查看结果如下:
    • 如果部署流水线选择的默认流水线,则流水线部署日志如下图所示。1
    • 如果部署流水线选择的三方流水线,则流水线部署日志如下图所示。1

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

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

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

      1
      • 处于审批流的部署日志详情如下。1

        单击查看进度,在进度详情页面,您可以查看具体访问进度。1

        您也可以在部署实例详情面板的部署记录区域,单击目标部署记录右侧的详情。在目标部署记录的部署记录详情面板,单击审批进度,进入审批进度详情页。11

      • 如果您想终止自定义流水线的部署流程,单击实例变更记录对话框中的终止流程。在二次确认对话框中,单击确定1

  3. 可选:查看指定部署记录的详细部署配置。

    1. 单击目标部署记录ID右侧的详情

    2. 部署记录详情面板,您可以查看部署内容资源规格部署策略等信息。1

    3. 如果您需要回滚到此版本,则单击回滚到此版本。在回滚应用部署对话框中,设置回滚策略和发布量后,单击回滚1