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

在 Azure 容器实例中为备用池配置角色权限

Azure 容器实例的备用池需要特定权限才能在订阅中创建和管理资源。 如果没有正确的权限,备用池将无法正常运行。 本文介绍如何为备用池配置基于角色的访问控制(RBAC)权限,并为可能需要其他权限的方案提供指导。

基本权限

若要允许备用池在订阅中创建和管理容器实例,请将适当的权限分配给备用池资源提供程序。

注释

这些权限可能并不完全涵盖所有方案。 如果备用池使用特定资源(例如存储在 Azure 容器注册表或其他订阅中的容器映像),请确保备用池资源提供程序可以访问这些资源。

为了涵盖尽可能多的方案,建议向备用池资源提供程序提供以下权限:

  • 容器实例参与者
  • 网络参与者
  • 托管的标识参与者
  • 托管标识操作员
  • 存储 Blob 数据参与者(如果将 Azure 存储用于容器数据)
  • Azure 容器注册表读取器 (如果使用存储在 Azure 容器注册表中的映像)
  1. 在“Azure 门户”中,导航到订阅。
  2. 选择要调整权限的订阅。
  3. 选择“访问控制 (IAM) ”。
  4. 选择“添加”按钮,然后选择“添加角色分配”。
  5. 在“角色”选项卡下,搜索 容器实例参与者 并选择它。
  6. 移动到“成员”选项卡。
  7. 选择“+ 选择成员”。
  8. 搜索“备用池资源提供程序”并选择它。
  9. 移动到“审阅 + 分配”选项卡。
  10. 应用更改。
  11. 重复上述步骤,将 网络参与者托管标识参与者 角色分配给备用池资源提供程序。 如果您使用 Azure 容器注册表或 Azure 存储,请分别分配 Azure 容器注册表读取者存储 Blob 数据参与者角色。

有关分配角色的信息,请参阅使用 Azure 门户分配 Azure 角色

跨订阅资源

如果备用池使用的资源(例如,存储在 Azure 容器注册表中的容器映像)位于不同的订阅中,请确保备用池的资源提供程序有权访问这些资源。 可能需要在其他订阅中分配角色来授予所需的权限。

排查权限问题

权限问题是备用池问题的常见原因。 这些问题可以通过多种方式表现为,例如池持续地创建和删除实例、无法创建实例或池中没有任何实例出现。 使用以下步骤排查并解决这些问题:

使用 Log Analytics 进行分析

如果池未按预期运行,请使用 Log Analytics 分析日志并确定缺少的权限:

  1. 导航到 Azure 门户
  2. 转到与备用池关联的 Log Analytics 工作区。 在使用 Log Analytics 之前,首先需要配置 Log Analytics 工作区。 有关详细信息,请参阅 使用 Azure Log Analytics 监视备用池事件
  3. SCGPoolExecutionLog查询表以查看与实例创建和删除相关的事件:
   SCGPoolExecutionLog
   | where TimeGenerated > ago(24h)
   | project TimeGenerated, EventName, EventStatus, ResourceId, FailureDetails
  1. 在 FailureDetails 列中查找错误或失败,以确定缺少的权限或其他问题。

检查运行时视图 API 以了解降级模式

如果池处于降级模式,资源创建将短暂暂停。 使用运行时视图 API 检查池的运行状况,并确定降级模式的原因:

  1. 将 GET 请求发送到运行时视图 API 或其他 SDK,例如 PowerShell 或 CLI。
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.StandbyPool/standbyContainerGroupPools/{standbyPool}/runtime?api-version=2025-03-01
  1. 查看 healthStatus 字段的响应。 如果池处于降级模式,响应将包括降级状态的原因。

  2. 解决已识别的问题,例如缺少权限或资源约束,以解决降级模式。

查看共用实例所需的权限

如果注意到共用容器实例回收或池中未显示任何实例,请查看创建单个容器实例所需的资源。 确保备用池资源提供程序具有对所有必需资源的必要权限,包括但不限于:

  • 容器实例参与者
  • 网络参与者
  • 托管的标识参与者
  • 存储 Blob 数据参与者(如果将 Azure 存储用于容器数据)
  • Azure 容器注册表读取器 (如果使用存储在 Azure 容器注册表中的映像)

验证分配给备用池资源提供程序的角色是否包括创建和管理容器实例所需的所有权限。

后续步骤

  • 使用 Azure Monitor 日志文档进一步浏览和分析日志。
  • 有关检查池运行状况和状态的更多详细信息,请参阅运行时视图 API 文档。
  • 确保按“基本权限”部分中所述分配所有必需的角色。