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

Azure Arc 上的 Azure 容器应用

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

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

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

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

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

局限性

以下限制适用于已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用。

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

支持以下功能:

  • 标签
  • 指标
  • 简单身份验证
  • 日志流
  • 复原能力
  • 自定义域
  • 容器应用作业
  • 修订管理
  • 应用容器控制台

重要

如果部署到 Azure Local 上的 AKS,请确保在尝试安装扩展之前已将 HAProxy 设置为负载均衡器

容器应用扩展创建的资源

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

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

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

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

Azure Arc 上的 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。 然后重新尝试连接的环境命令。

是否可以在 Windows 节点上安装扩展?

否,不能在 Windows 节点上安装扩展。 仅支持在 Linux 节点上安装扩展

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

否。 不支持基于 Arm64 的群集。