自定义位置

作为 Azure 位置构造的扩展,自定义位置会提供一个引用作为管理员可以在创建 Azure 资源时设置的部署目标。 自定义位置功能会从应用程序开发人员、数据库管理员用户或组织中的其他用户那里提取后端基础结构详细信息。 然后,这些用户可以引用自定义位置,而无需了解这些详细信息。

自定义位置可用于启用已启用 Azure Arc 的 Kubernetes 群集作为部署 Azure 服务实例的目标位置。

在已启用 Arc 的 Kubernetes 群集上,自定义位置表示已启用 Azure Arc 的 Kubernetes 群集内部命名空间的抽象概念。 自定义位置为其他 Azure 服务创建所需的精细 RoleBindings 和 ClusterRoleBindings,使其能够访问群集。

自定义位置权限

由于自定义位置是支持 Azure 基于角色的访问控制 (Azure RBAC) 的 Azure 资源管理器资源,因此管理员或操作员可以确定哪些用户有权在以下位置创建资源实例:

  • Kubernetes 群集中的命名空间,用于已启用 Azure Arc 的 SQL 托管实例或已启用 Azure Arc 的 PostgreSQL 服务器的目标部署。
  • 用于部署和管理 VM 的计算、存储、网络和其他 vCenter 或 Azure Stack HCI 资源。

例如,群集操作员可以创建一个自定义位置 Contoso-Michigan-Healthcare-App,表示组织的密歇根数据中心的 Kubernetes 群集上的命名空间。 操作员可以将 Azure RBAC 权限分配给此自定义位置上的应用程序开发人员,以便他们可以部署与医疗保健相关的 Web 应用程序。 然后,开发人员可以将这些应用程序部署到 Contoso-Michigan-Healthcare-App,而无需了解命名空间和 Kubernetes 群集的详细信息。

已启用 Arc 的 Kubernetes 的体系结构

当管理员在群集上启用自定义位置功能时,该群集上会创建一个 ClusterRoleBinding,并为自定义位置资源提供程序 (RP) 使用的 Microsoft Entra 应用程序授权。 获得授权后,自定义位置 RP 可以创建其他 Azure RP 在此群集上创建自定义资源时所需的 ClusterRoleBinding 或 RoleBinding。 群集上安装的群集扩展会确定要授权的 RP 列表。

Diagram showing custom locations architecture on Arc-enabled Kubernetes.

当用户在群集上创建数据服务实例时:

  1. 向 Azure 资源管理器发送 PUT 请求。
  2. 将 PUT 请求转发到已启用 Azure Arc 的数据服务 RP。
  3. RP 提取与存在自定义位置的已启用 Azure Arc 的 Kubernetes 群集关联的 kubeconfig 文件。
    • 在原始 PUT 请求中,自定义位置称为 extendedLocation
  4. 已启用 Azure Arc 的数据服务 RP 使用 kubeconfig 来与群集通信,以在映射到自定义位置的命名空间中创建已启用 Azure Arc 的数据服务类型的自定义资源。
    • 在自定义位置存在之前,已通过创建群集扩展部署了已启用 Azure Arc 的数据服务操作程序。
  5. 已启用 Azure Arc 的数据服务操作程序读取在群集上创建的新自定义资源并创建数据控制器,这相当于在群集上实现了所需状态。

用于创建 SQL 托管实例或 PostgreSQL 实例的步骤顺序与前面所述的步骤顺序相同。

后续步骤