设置 Azure 容器应用

已完成

在本单元中,你将了解如何使用 Azure CLI 创建 Azure 容器应用环境和 Azure for PostgreSQL 数据库。 然后,配置 Quarkus 应用程序,使其连接到远程数据库,而不是本地数据库。

从 IaaS 到 FaaS,多个目标可用于在 Azure 上部署 Quarkus 应用程序。 Azure 容器应用位于 PaaS 和 FaaS 之间。 它更像是 PaaS,因为你不需要使用特定的编程模型,可以控制横向扩展和横向缩减的规则。 另一方面,它具有一些无服务器特征,例如缩放到零、事件驱动的缩放和每秒定价模型。

Screenshot that shows all Azure compute services.

容器应用构建在 Azure Kubernetes 服务 (AKS) 之上。 它包括与 KEDA(针对 Kubernetes 的事件驱动型自动缩放)、Dapr(分布式应用程序运行时)和 Envoy(专用于云原生应用程序的服务代理)的深度集成。 底层复杂性是抽象的,因此无需配置 Kubernetes 服务、部署、入口或卷清单。 你可获得一个简单的 API 和用户界面,用于配置容器化应用程序。 由于这种简化,你拥有的控制比使用 AKS 时少。

在容器应用中,需要将应用程序打包到 Docker 容器中。 容器应用支持使用 Dockerfile 或 Jib 构建的 Docker 容器。 容器需要在容器注册表上可用。 容器应用支持 Azure 容器注册表、Docker Hub 和 GitHub 容器注册表。 应用程序映像在注册表中可用后,容器应用支持从 Azure 门户、Azure CLI、GitHub Action 和 Azure DevOps 进行部署。

容器应用提供以下功能。

  • 修订:帮助管理容器应用的应用程序生命周期的自动版本控制。
  • 流量控制:将传入的 HTTP 流量拆分到多个修订中,以进行蓝/绿部署和 A/B 测试。
  • 入口:简单 HTTPS 入口配置。 无需担心 DNS 或证书。
  • 自动缩放:使用所有 KEDA 支持的缩放触发器(根据外部指标缩放应用)。
  • 机密:在容器、缩放规则和 Dapr 挎斗之间共享的机密。
  • 监视:标准输出和错误流会自动写入 Log Analytics。
  • Dapr:用于容器应用的 Dapr 集成。 使用简单标志启用此集成。

在下一个练习中,你将了解以下概念。

  • 环境:围绕一组容器应用的增强安全边界。 应用部署在单个虚拟网络中,它们可以轻松地相互通信,并将日志写入单个 Log Analytics 工作区。 可以将环境与 Kubernetes 命名空间进行比较。
  • 容器应用:一起部署和缩放的一组容器 (Pod)。 它们共享单一磁盘空间和网络。
  • 修订:容器应用的不可变快照。 会自动创建新修订,它们对于 HTTP 流量重定向策略(例如 A/B 测试)非常有用。

Screenshot that illustrates Container Apps concepts.

现在,你将创建一个容器应用环境,了解这些元素的工作原理。