设置 Azure 容器应用
在本单元中,你将了解如何使用 Azure CLI 创建 Azure 容器应用环境和 Azure for PostgreSQL 数据库。 然后,配置 Quarkus 应用程序,使其连接到远程数据库,而不是本地数据库。
从 IaaS 到 FaaS,多个目标可用于在 Azure 上部署 Quarkus 应用程序。 Azure 容器应用位于 PaaS 和 FaaS 之间。 它更像是 PaaS,因为你不需要使用特定的编程模型,可以控制横向扩展和横向缩减的规则。 另一方面,它具有一些无服务器特征,例如缩放到零、事件驱动的缩放和每秒定价模型。
容器应用构建在 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 测试)非常有用。
现在,你将创建一个容器应用环境,了解这些元素的工作原理。