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

Azure Arc 上的 Azure 容器应用(预览版)

可以在已启用 Azure Arc 的 AKS 或 AKS-HCI 群集上运行容器应用。

在已启用 Azure Arc 的 Kubernetes 群集中运行容器应用可以让:

  • 开发人员利用容器应用的功能
  • IT 管理员通过在内部基础结构上托管容器应用来维持企业合规性。

通过设置已启用 Azure Arc 的 Kubernetes 群集来运行 Azure 容器应用,了解如何为容器应用设置 Kubernetes 群集

在配置群集时,你将执行以下操作:

公共预览版限制

以下公共预览版限制适用于已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用。

限制 详细信息
支持的 Azure 区域 美国东部、欧洲西部、东亚
群集网络要求 必须支持 LoadBalancer 服务类型
功能:托管标识 不可用
功能:使用托管标识从 ACR 拉取映像 不可用(取决于托管标识)
日志 Log Analytics 必须配置群集扩展;不是按站点

容器应用扩展创建的资源

在已启用 Azure Arc 的 Kubernetes 群集上安装容器应用扩展时,会在指定的发布命名空间中创建多个资源。 这些资源使群集能够成为 Microsoft.App 资源提供程序的扩展,以支持应用的管理和操作。

(可选)可以选择为扩展安装 KEDA 以用于事件驱动的缩放。 但是,群集上只允许一个 KEDA 安装。 如果存在现有的安装,请在安装群集扩展时禁用 KEDA 安装。

下表描述了为你创建的每个修订版的作用:

Pod 说明 实例数 CPU 内存 类型
<extensionName>-k8se-activator 用作缩放管道的一部分 2 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-billing 计费记录生成 - 已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用在预览期是免费的 3 100 millicpu 100 MB ReplicaSet
<extensionName>-k8se-containerapp-controller 在群集上创建资源并维护组件状态的核心运算符 Pod。 2 100 millicpu 1 GB ReplicaSet
<extensionName>-k8se-envoy 用于所有数据平面 http 请求的前端代理层。 它将入站流量路由到正确的应用。 3 1 核 1536 MB ReplicaSet
<extensionName>-k8se-envoy-controller 用于生成 Envoy 配置的运算符 2 200 millicpu 500 MB ReplicaSet
<extensionName>-k8se-event-processor 备用路由目标,用于帮助在系统获得第一个可用实例时缩放至零的应用。 2 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-http-scaler 监视入站请求量以便向 KEDA 提供缩放信息。 1 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-keda-cosmosdb-scaler KEDA Cosmos DB 缩放器 1 10 m 128 MB ReplicaSet
<extensionName>-k8se-keda-metrics-apiserver KEDA 指标服务器 1 1 核 1000 MB ReplicaSet
<extensionName>-k8se-keda-operator 将输入和输出的工作负载从 0/1 缩放到 N 个实例 1 100 millicpu 500 MB ReplicaSet
<extensionName>-k8se-log-processor 从应用和其他组件收集日志并将其发送到 Log Analytics。 2 200 millicpu 500 MB DaemonSet
<extensionName>-k8se-mdm 指标和日志代理 2 500 millicpu 500 MB ReplicaSet
dapr-metrics Dapr 指标 Pod 1 100 millicpu 500 MB ReplicaSet
dapr-operator 管理 Dapr 的组件更新和服务终结点 1 100 millicpu 500 MB ReplicaSet
dapr-placement-server 仅用于执行组件 - 创建用于将执行组件实例映射到 Pod 的映射表 1 100 millicpu 500 MB StatefulSet
dapr-sentry 管理服务之间的 mTLS 并充当 CA 2 800 millicpu 200 MB ReplicaSet

Azure Arc 上的 Azure 容器应用(预览版)常见问题解答

费用是多少?

在公共预览期间,已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用是免费的。

支持哪些容器应用功能?

在预览期间,某些 Azure 容器应用功能正在接受验证。 如果支持这些选项,将激活 Azure 门户中其左侧的导航选项。 尚不支持的功能保持灰显。

是否支持托管标识?

不支持托管标识。 应用在 Azure Arc 中运行时,无法为其分配托管标识。如果应用需要一个标识以便能使用另一个 Azure 资源,请考虑改用应用程序服务主体

是否存在任何缩放限制?

使用已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用部署的所有应用程序都能够在基础 Kubernetes 群集的限制范围内缩放。 如果群集用尽了可用计算资源(主要是 CPU 和内存),则应用程序将缩放到 Kubernetes 可使用可用资源进行计划的应用程序实例数。

收集哪些日志?

系统组件和应用程序的日志均写入标准输出。

可以使用标准 Kubernetes 工具收集这两类日志以进行分析。 还可以使用 Log Analytics 工作区配置应用程序环境群集扩展,它会将所有日志发送到该工作区。

默认情况下,来自系统组件的日志将发送到 Azure 团队。 不会发送应用程序日志。 可以通过将 logProcessor.enabled=false 设置为扩展配置设置以防止传输这些日志。 此配置设置还会禁止将应用程序转发到 Log Analytics 工作区。 禁用日志处理器可能会影响任何支持案例所需的时间,并且系统会要求你通过一些其他方式从标准输出中收集日志。

如果看到提供程序注册错误,该怎么办?

创建与 Azure 容器应用连接的环境资源时,某些订阅可能会遇到“找不到已注册的资源提供程序”错误。 错误详细信息可能包括一组被视为有效的位置和 API 版本。 如果返回了此错误消息,则必须将订阅重新注册到 Microsoft.App 提供程序。 重新注册提供程序不会影响现有的应用程序或 API。 若要重新注册,请使用 Azure CLI 运行 az provider register --namespace Microsoft.App --wait。 然后重新尝试连接的环境命令。

是否可以在基于 ARM64 的群集上部署容器应用扩展?

目前不支持基于 ARM64 的群集。

扩展发行说明

容器应用扩展 v1.0.46(2022 年 12 月)

  • 容器应用扩展的初始公共预览版

容器应用扩展 v1.0.47(2023 年 1 月)

  • 将 Envoy 升级到 1.0.24

容器应用扩展 v1.0.48(2023 年 2 月)

  • 将探测添加到 EasyAuth 容器
  • 提高了 dapr -operator 的内存限制
  • 添加了防止平台标头覆盖的功能

容器应用扩展 v1.0.49(2023 年 2 月)

  • 将 KEDA 升级到 2.9.1,将 Dapr 升级到 1.9.5
  • 将 Envoy 控制器资源限制提高到 200 m CPU
  • 将容器应用控制器资源限制增加到 1 GB 内存
  • 将 EasyAuth 挎斗资源限制降低到 50 m CPU
  • 解决缺少指标值时记录的 KEDA 错误

容器应用扩展 v1.0.50(2023 年 3 月)

  • 更新了与公有云同步的日志记录映像

容器应用扩展 v1.5.1(2023 年 4 月)

  • 新的版本号格式
  • 将 Dapr 升级到 1.10.4
  • 部署新修订后保持 Envoy 的缩放
  • 更改为将默认启动探测添加到容器时,如果开发人员未同时定义启动探测和就绪情况探测,则添加默认启动探测
  • 将 CONTAINER_APP_REPLICA_NAME 环境变量添加到自定义容器
  • 在多次修订停止时提高了性能

容器应用扩展 v1.12.8(2023 年 6 月)

  • 将 OSS Fluent Bit 更新到 2.1.2、Dapr 到 1.10.6
  • 支持自定义端口上公开的容器注册表
  • 在容器应用停止时启用激活/停用修订
  • 修复修订列表不返回 Init 容器
  • 为 cors 策略添加了默认允许标头

容器应用扩展 v1.12.9(2023 年 7 月)

  • EasyAuth 挎斗容器的次要更新
  • 扩展监视代理的更新

容器应用扩展 v1.17.8(2023 年 8 月)

  • 将 EasyAuth 更新到 1.6.16、Dapr 到 1.10.8、Envoy 到 1.25.6
  • 添加对 Azure 容器应用作业的卷装载支持
  • 为具有 TCP 流入量类型的应用程序添加了 IP 限制
  • 添加了对具有多个公开端口的容器应用的支持

容器应用扩展 v1.23.5(2023 年 12 月)

  • 将 Envoy 更新到 1.27.2、KEDA 到 v2.10.0、EasyAuth 到 1.6.20、Dapr 更新到 1.11
  • 将 Envoy 设置为最大 TLS 1.3
  • 修复以解决日志处理器 Pod 中的崩溃问题
  • 修复映像拉取机密检索问题
  • 更新 Envoy 的位置,以便尽可能跨可用节点分布
  • 当容器应用因修订冲突而无法预配时,请将预配状态设置为失败

容器应用扩展 v1.30.6(2024 年 1 月)

  • 将 KEDA 更新到 v2.12、Envoy SC 映像到 v1.0.4、Dapr 映像更新到 v1.11.6
  • 已将 Envoy 路由的默认响应超时延长至 1800 秒
  • 已将 Fluent 位默认日志级别更改为警告
  • 延迟删除作业 Pod 以确保日志释放
  • 修复了失败作业执行的作业 Pod 删除问题
  • 确保处于暂停状态的作业也可删除失败的 Pod
  • 更新为不解析 TCP 应用程序的 HTTPOptions
  • 允许应用程序侦听 HTTP 或 HTTPS
  • 添加暂停作业的功能
  • 修复了在停止作业执行后 KEDA 缩放程序未能创建作业的问题
  • 在群集重启时,将 startingDeadlineSeconds 添加到容器应用作业
  • 已删除 Envoy 访问日志服务器中的大量日志记录
  • 更新了已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用的监视配置版本

容器应用扩展 v1.36.15(2024 年 4 月)

  • 将 Dapr 更新到 v1.12,将 Dapr 指标更新到 v0.6
  • 允许客户在 Dapr 中启用 Azure SDK 调试日志记录
  • 缩放 Envoy 以响应内存使用情况
  • 将 Envoy 日志格式更改为 Json
  • 导出其他 Envoy 指标
  • 当日志内容无法分析时,截断 Envoy 日志到前 1,024 个字符
  • 在本地代理中正常处理 SIGTERM
  • 允许通过 KEDA 利用不同的命名空间
  • 为缩放规则名称添加了验证
  • 默认启用的修订 GC
  • 为 sidecars 启用指标的排放
  • 向作业执行添加了 volumeMounts
  • 向作业添加了对 Webhook 终结点的验证

后续步骤

创建与容器应用连接的环境(预览版)