你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以在已启用 Azure Arc 的 AKS 或 Azure Local 群集上的 AKS 上运行容器应用。
在已启用 Azure Arc 的 Kubernetes 群集中运行容器应用可以让:
- 开发人员利用容器应用的功能
- IT 管理员通过在内部基础结构上托管容器应用来维持企业合规性。
通过设置已启用 Azure Arc 的 Kubernetes 群集来运行 Azure 容器应用,了解如何为容器应用设置 Kubernetes 群集
在配置群集时,你将执行以下操作:
连接的群集,该群集是 Kubernetes 基础结构的 Azure 投影。 有关详细信息,请参阅什么是已启用 Azure Arc 的 Kubernetes?。
群集扩展,该扩展是连接的群集资源的子资源。 容器应用扩展将所需的资源安装到连接的群集中。 有关群集扩展的详细信息,请参阅已启用 Azure Arc 的 Kubernetes 上的群集扩展。
自定义位置,它将一组扩展捆绑在一起,并将器映射到已创建资源的命名空间。 有关详细信息,请参阅已启用 Azure Arc 的 Kubernetes 上的自定义位置。
与容器应用连接的环境,该环境使配置跨应用通用但与群集操作无关。 从概念上讲,该环境部署到自定义位置资源中,应用开发人员会在其中创建应用。
局限性
以下限制适用于已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用。
限制 | 详细信息 |
---|---|
支持的 Azure 区域 | 美国中部、东亚、美国东部、美国中北部、东南亚、瑞典中部、英国南部、西欧、美国西部 |
群集网络要求 | 必须支持 LoadBalancer 服务类型 |
节点 OS 要求 | 仅限 Linux。 |
功能:托管标识 | 不可用 |
功能:使用托管标识从 ACR 拉取映像 | 不可用(取决于托管标识) |
日志 | Log Analytics 必须配置群集扩展;不是按应用程序 |
支持以下功能:
- 标签
- 指标
- 简单身份验证
- 日志流
- 复原能力
- 自定义域
- 容器应用作业
- 修订管理
- 应用容器控制台
容器应用扩展创建的资源
在已启用 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 容器应用的常见问题解答
- 支持哪些容器应用功能?
- 是否支持托管标识?
- 是否存在任何缩放限制?
- 收集哪些日志?
- 如果看到提供程序注册错误,该怎么办?
- 是否可以在 Windows 节点上安装扩展?
- 是否可以在基于 Arm64 的群集上部署容器应用扩展?
支持哪些容器应用功能?
检查门户以获取最新列表。 门户中不受支持的功能灰显。
是否支持托管标识?
不支持托管标识。 应用在 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 的群集。