你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Tanzu Build Service

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

本文适用于:❌ 基本版/标准版 ✔️ 企业版

本文介绍如何将 VMware Tanzu Build Service 与 Azure Spring Apps 企业计划结合使用。

VMware Tanzu Build Service 可在企业范围内实现容器创建、管理和治理的自动化。 Tanzu Build Service 使用开源云原生生成包项目将应用程序源代码转换为容器映像。 此服务执行符合现代容器标准的可再现生成,并使映像保持最新。

生成包

VMware Tanzu 生成包为应用程序提供框架和运行时支持。 生成包通常会检查你的应用程序,以确定要下载哪些依赖项,以及如何配置应用程序以与绑定服务进行通信。

语言系列生成包复合生成包,为最流行的语言运行时和应用程序配置提供简单的开箱即用支持。 这些生成包将多个组件生成包组合成有序的分组。 分组满足每个生成包的要求。

生成器

生成器是 Tanzu 生成服务资源。 生成器包含一组构建包和一个在构建源代码的过程中使用的堆栈

生成代理池

企业计划中的 Tanzu Build Service 是从源代码和生成工件容器化用户应用程序的入口点。 有一个专用的生成代理池,可为给定数量的并发生成任务保留计算资源。 生成代理池可阻止正在运行的应用争用资源。

下表显示了可用的生成代理池规模集大小:

规模集 CPU/Gi
S1 2 个 vCPU,4 Gi
S2 3 个 vCPU,6 Gi
S3 4 个 vCPU,8 Gi
S4 5 个 vCPU,10 Gi
S5 6 个 vCPU,12 Gi
S6 8 个 vCPU,16 Gi
S7 16 个 vCPU,32 Gi
S8 32 个 vCPU,64 Gi
S9 64 个 vCPU,128 Gi

Tanzu Build Service 最多可以构建一个池大小的生成任务,并将两倍于池大小的生成任务放入队列中。 如果代理池的配额不足以执行生成任务,则此生成请求将显示以下错误:The usage of build results in Building or Queuing status are (cpu: xxx, memory: xxxMi) and the remained quota is insufficient for this build. please retry with smaller size of build resourceRequests, retry after the previous build process completed or increased your build agent pool size

配置生成代理池

使用 Azure 门户创建新的 Azure Spring Apps 企业服务实例时,可以使用“VMware Tanzu 设置”选项卡来配置分配给生成代理池的资源数量

Azure 门户中“创建 Azure Spring Apps”页的屏幕截图,其中突出显示了“VMware Tanzu 设置”选项卡和“已分配的资源”。

下图显示了在成功预配服务实例后分配给 Tanzu Build Service 代理池的资源。 创建服务实例后,你还可以在此处更新配置的代理池大小。

Azure 门户中“生成服务”页的屏幕截图,其中显示了用于编辑分配给生成服务的资源的下拉菜单。

按需生成服务

创建 Azure Spring Apps 企业计划实例时,可以启用或禁用生成服务。

生成和部署特性

Tanzu Build Service 默认启用,以便用户可以使用容器注册表。 如果禁用生成服务,用户只能使用自定义容器映像来部署应用程序。 你有以下选择:

  • 启用生成服务并使用 Azure Spring Apps 托管的容器注册表。

    Azure Spring Apps 提供托管的 Azure 容器注册表,用于存储应用程序的生成映像。 只能将生成和部署作为一个命令执行,不能单独执行。 只能使用生成的容器映像在同一服务实例中部署应用程序。 其他 Azure Spring Apps 企业服务实例无法访问这些映像。

  • 启用生成服务并使用自己的容器注册表。

    此方案将生成与部署分开。 可以与应用程序部署分开执行从应用程序的源代码或生成工件到容器映像的生成。 可以将存储在自己的容器注册表中的容器映像部署到多个 Azure Spring Apps 企业服务实例。

  • 禁用生成服务。

    禁用生成服务时,只能使用容器映像部署应用程序,可以从任何 Azure Spring Apps 企业服务实例生成这些映像。

配置生成服务设置

可以使用 Azure 门户或 Azure CLI 配置 Tanzu Build Service 和容器注册表设置。

预配 Azure Spring Apps 服务实例时,使用以下步骤启用 Tanzu Build Service:

  1. 打开 Azure 门户

  2. 在“基本信息”选项卡上的“定价”部分,选择“企业层”,然后指定所需信息。

  3. 选择“下一步: VMware Tanzu 设置”

  4. 在“VMware Tanzu 设置”选项卡上,选择“启用生成服务”。 对于“容器注册表”,默认设置是“使用托管的 Azure 容器注册表来存储生成的映像”

    Azure 门户中“创建 Azure Spring Apps”页的屏幕截图,其中显示了“VMware Tanzu 设置”选项卡并突出显示了“生成服务设置”。

  5. 如果选择“使用自己的容器注册表来存储生成映像(预览版)”作为“容器注册表”,请提供容器注册表的服务器、用户名和密码。

    Azure 门户中“创建 Azure Spring Apps”页“VMware Tanzu 设置”选项卡的屏幕截图,其中突出显示了容器注册表设置。

  6. 如果禁用“启用生成服务”,则不会提供容器注册表选项,但可以使用容器映像部署应用程序。

    Azure 门户中“Azure Spring Apps”页“VMware Tanzu 设置”选项卡的屏幕截图,其中的“启用生成服务”选项未选中。

  7. 选择“查看并创建”。

部署多语言应用程序

可以在已启用或禁用 Tanzu Build Service 的 Azure Spring Apps 企业服务实例中部署多语言应用程序。 有关详细信息,请参阅如何在 Azure Spring Apps Enterprise 中部署多语言应用

配置 APM 集成和 CA 证书

Azure Spring Apps 企业计划使用 Tanzu Partner Buildpacks 和 CA Certificates Buildpack 来提供简化的配置体验,以支持应用程序性能监视器 (APM) 集成。 此集成包括多语言应用程序的证书颁发机构 (CA) 证书集成方案。 有关详细信息,请参阅如何配置 APM 集成和 CA 证书

实时生成日志

从 Azure CLI 命令部署应用程序时,将触发生成任务。 生成日志将作为 CLI 命令输出的一部分实时进行流式处理。 有关使用生成日志来诊断问题的信息,请参阅使用诊断设置分析日志和指标

生成历史记录

可以在 Azure Spring Apps“生成服务”页的“生成”部分查看所有生成资源

Azure 门户中 Azure Spring Apps“生成服务”页的屏幕截图,其中突出显示了“生成”。

“生成”部分中的表包含以下列:

  • 生成名称:生成的名称。
  • 预配状态:生成的预配状态。 其值为:SucceededFailedUpdatingCreating。 预配状态 UpdatingCreating 表示在当前生成完成之前无法更新生成。 预配状态 Failed 表示最新的源代码生成未能生成新的生成结果。
  • 资源配额:生成 Pod 中的资源配额。
  • 生成器:生成中使用的生成器。
  • 最新生成结果:生成的最新生成结果的映像标记。
  • 最新生成结果预配状态:生成的最新生成结果的预配状态。 其值为:QueuingBuildingSucceededFailed
  • 最新生成结果上次转换时间:生成的最新生成结果的最后一个转换时间。
  • 最新生成结果上次转换原因:生成的最新生成结果的最后转换原因。 具体的值为 CONFIGSTACKBUILDPACKCONFIG 表示生成结果由生成器更新或新的源代码部署操作更改。 STACK 表示堆栈升级更改了生成结果。 BUILDPACK 表示生成包升级更改了生成结果。
  • 最新生成结果上次转换状态:生成的最新生成结果的最后一次转换状态。 其值为 TrueFalse

对于“预配状态”,当值为 Failed 时,请再次部署源代码。 如果该问题仍旧出现,请创建支持工单。

对于“最新的生成结果预配状态”,如果值为 Failed,请检查生成日志。 有关详细信息,请参阅排查 Azure Spring Apps 中的常见生成问题

对于“最新生成结果上次转换状态”,如果值为 Failed,请参阅“最新生成结果上次转换原因”列。 如果原因为 BUILDPACKSTACK,不需要执行任何操作。 如果原因为 CONFIG,请再次部署源代码。 如果该问题仍旧出现,请创建支持工单。

后续步骤