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

快速入门:使用服务连接器将 Azure Kubernetes 服务连接到数据库和服务

开始使用服务连接器,将 Azure Kubernetes 服务 (AKS) 群集连接到数据库、存储帐户和其他 Azure 服务。 服务连接器简化了身份验证和配置,使你能够使用工作负荷标识或其他身份验证方法连接到资源。

本文提供 Azure 门户和 Azure CLI 的分步说明。 使用上面的选项卡选择首选方法。

先决条件

  • 本快速入门需要 Azure CLI 版本 2.30.0 或更高版本。 若要升级到最新版本,请运行 az upgrade。 如果使用 Azure Cloud Shell,则最新版本已安装。

初始设置

  1. 如果首次使用 Service Connector,请首先运行 命令 az provider register 以注册服务连接器和 Kubernetes 配置资源提供程序。

    az provider register -n Microsoft.ServiceLinker
    
    az provider register -n Microsoft.KubernetesConfiguration
    

    小窍门

    可以通过运行命令 az provider show -n "Microsoft.ServiceLinker" --query registrationStateaz provider show -n "Microsoft.KubernetesConfiguration" --query registrationState检查这些资源提供程序是否已注册。

  2. (可选)使用 Azure CLI 命令获取 AKS 群集支持的目标服务列表。

    az aks connection list-support-types --output table
    

在 AKS 群集中创建服务连接

使用服务连接器在 Azure Kubernetes 服务(AKS)群集与 Azure Blob 存储之间创建服务连接。 此示例演示如何连接到 Blob 存储,但可以对其他受支持的 Azure 服务使用相同的过程。

  1. 选择 Azure 门户顶部的 搜索资源、服务和文档(G +/) 搜索栏,键入 AKS,然后选择 Kubernetes 服务 Azure 门户的屏幕截图,其中选择了 AKS 群集。

  2. 选择要连接到目标资源的 AKS 群集。

  3. 从服务菜单中选择 “设置>服务连接器 ”。 然后选择“创建”。 Azure 门户的屏幕截图,展示了如何创建新连接。

  4. “基本信息 ”选项卡上,选择或输入以下设置。

    设置 示例 说明
    Kubernetes 命名空间 default 群集中需要进行连接的命名空间。
    服务类型 存储 - Blob 目标服务类型。 如果没有 Microsoft Blob 存储,可以创建一个,或使用其他服务类型。
    连接名称 my_connection 用于标识 AKS 群集与目标服务之间的连接的连接名称。 使用服务连接器提供的连接名称或选择自己的连接名称。
    订阅 我的订阅 目标服务(要连接到的服务)的订阅。 默认值为此 AKS 群集的订阅。
    存储帐户 my_storage_account 要连接到的目标存储帐户。 可供选择的目标服务实例因所选服务类型而异。
    客户端类型 python 用于连接到目标服务的代码语言或框架。
  5. 选择“下一步: 身份验证”以选择身份验证方法。

    选择“工作负载标识”,通过 Microsoft Entra 工作负载标识向 Azure 服务的一个或多个实例进行身份验证。 然后,选择用户分配的托管标识来启用工作负载标识。

  6. 选择“下一步: 网络”以配置对目标服务的网络访问,然后选择“配置防火墙规则以启用对目标服务的访问”。

    注意

    AKS 的服务连接器目前仅支持防火墙选项。 不支持专用链接和服务终结点。

  7. 选择“下一步: 查看 + 创建”,以查看提供的信息。 然后选择“创建”,以创建服务连接。 此作可能需要一分钟才能完成。

更新容器

在 AKS 群集和目标服务之间创建连接后,需要检索连接机密并将其部署到容器中。

  1. Azure 门户中,导航到 AKS 群集资源,并转到 “设置>服务连接器”。

  2. 选择新创建的连接,然后选择“YAML 代码片段”。 此操作将打开一个面板,其中显示服务连接器生成的 YAML 文件示例。

  3. 若要将连接机密设置为容器中的环境变量,有两个选项:

    • 使用提供的 YAML 示例代码片段直接创建部署。 该代码片段包含突出显示的部分,显示将作为环境变量插入的机密对象。 选择“应用”以继续使用此方法

      Azure 门户的屏幕截图,其中显示了用于在 AKS 中创建新连接的 YAML 代码片段示例。

    • 或者,在“资源类型”下,选择“Kubernetes 工作负载”,然后选择现有的 Kubernetes 工作负载。 此操作将新连接的机密对象设置为所选工作负载的环境变量。 选择工作负载后,选择“应用”

      Azure 门户的屏幕截图,其中显示了用于在 AKS 中创建新连接的 Kubernetes 代码片段。

运行 az aks connection create storage-blob 命令。 可以通过两种不同的方式运行此命令:

  • 逐步生成新连接。

    az aks connection create storage-blob \
       --workload-identity <user-identity-resource-id>
    
  • 一次性生成新连接。 将占位符替换为你自己的信息:<source-subscription>、、<source_resource_group><cluster><target-subscription><target_resource_group>、、 <account><user-identity-resource-id>

    az aks connection create storage-blob \
       --source-id /subscriptions/<source-subscription>/resourceGroups/<source_resource_group>/providers/Microsoft.ContainerService/managedClusters/<cluster> \
       --target-id /subscriptions/<target-subscription>/resourceGroups/<target_resource_group>/providers/Microsoft.Storage/storageAccounts/<account>/blobServices/default \
       --workload-identity <user-identity-resource-id>
    

小窍门

如果没有 Blob 存储帐户,请运行 az aks connection create storage-blob --new --workload-identity 以创建一个帐户,并使用工作负荷标识将其连接到应用服务。

在 AKS 群集中查看服务连接

  1. 服务连接器会显示此群集中的现有连接。

  2. 选择“网络视图”,查看网络拓扑视图中的所有服务连接。

    Azure 门户的屏幕截图,其中列出和查看连接。

运行 az aks connection list 命令列出所有 Azure Spring Apps 预配的连接。

将占位符 <cluster-resource-group>替换为以下命令,并将 <cluster-name>以下命令中的信息替换为自己的信息。 还可以删除该 --output table 选项以查看有关连接的详细信息。

az aks connection list --resource-group <cluster-resource-group> --name <cluster-name> --output table

输出还显示连接的预配状态。