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

教程:将 AKS 应用连接到 Azure SQL 数据库(预览版)

本教程介绍如何使用服务连接器(预览版)将部署到 AKS 的应用程序连接到 Azure SQL 数据库。 你将完成以下任务:

  • 创建 Azure SQL 数据库资源
  • 使用服务连接器在 AKS 群集与数据库之间创建连接。
  • 更新容器
  • 更新应用程序代码
  • 清理 Azure 资源。

先决条件

创建 Azure SQL 数据库

  1. 使用 az group create 命令创建一个资源组以存储在本教程中创建的 Azure 资源。

    az group create \
        --name $RESOURCE_GROUP \
        --location eastus
    
  2. 按照说明在上一步创建的资源组中创建 Azure SQL 数据库。 请记下在本教程中使用的服务器名称、数据库名称和数据库凭据。

使用服务连接器在 AKS 中创建服务连接(预览版)

注册服务连接器和 Kubernetes 配置资源提供程序

使用 az provider register 命令注册服务连接器和 Kubernetes 配置资源提供程序。

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

提示

可以使用 az provider show --namespace "Microsoft.ServiceLinker" --query registrationStateaz provider show --namespace "Microsoft.KubernetesConfiguration" --query registrationState 命令检查这些资源提供程序是否已注册。 如果输出为 Registered,则服务提供商已注册。

创建新连接

使用 Microsoft Entra 工作负荷 ID 在 AKS 群集与 SQL 数据库之间创建服务连接

  1. Azure 门户中导航到你的 AKS 群集资源。

  2. 选择“设置”>“服务连接器(预览版)”>“创建”

  3. 在“基本信息”选项卡上,配置以下设置:

    • Kubernetes 命名空间:选择“默认”
    • 服务类型:选择“SQL 数据库”。
    • 连接名称:使用服务连接器提供的连接名称或输入自己的连接名称
    • 订阅:选择包含 Azure SQL 数据库服务的订阅
    • SQL Server:选择 SQL Server
    • SQL 数据库:选择 SQL 数据库
    • 客户端类型:用于连接到目标服务的代码语言或框架,例如 Python

    Azure 门户的屏幕截图,其中显示了用于在 AKS 中创建与 SQL 数据库的新连接的窗体。

  4. 选择“下一步: 身份验证”。 在“身份验证”选项卡上,选择“工作负荷标识”并选择一个“用户分配的托管标识”

  5. 选择“下一步: 网络”>“下一步: 查看 + 创建”>“在 Cloud Shell 上创建”

  6. Cloud Shell 将启动并执行命令来创建连接。 可能需要在命令处理期间确认某些配置更改。 命令成功运行后,会显示连接信息,可以在“服务连接器”窗格中单击“刷新”按钮以显示最新结果。

警告

Microsoft 建议使用最安全的可用身份验证流。 本过程中介绍的身份验证流程需要非常高的信任度,并携带其他流中不存在的风险。 请仅在无法使用其他更安全的流(例如托管标识)时才使用此流。 选择身份验证方法 工作负荷 ID(建议)。

使用连接字符串在 AKS 群集与 SQL 数据库之间创建服务连接

  1. Azure 门户中导航到你的 AKS 群集资源。

  2. 选择“设置”>“服务连接器(预览版)”>“创建”

  3. 在“基本信息”选项卡上,配置以下设置:

    • Kubernetes 命名空间:选择“默认”
    • 服务类型:选择“SQL 数据库”。
    • 连接名称:使用服务连接器提供的连接名称或输入自己的连接名称
    • 订阅:选择包含 Azure SQL 数据库服务的订阅
    • SQL Server:选择 SQL Server
    • SQL 数据库:选择 SQL 数据库
    • 客户端类型:用于连接到目标服务的代码语言或框架,例如 Python

    Azure 门户的屏幕截图,其中显示了用于在 AKS 中创建与 SQL 数据库的新连接的窗体。

  4. 选择“下一步: 身份验证”。 在“身份验证”选项卡中,输入数据库用户名和密码

  5. 选择“下一步: 网络”>“下一步: 查看 + 创建”>“创建”

  6. 部署成功后,可以在“服务连接器”窗格中查看有关新连接的信息

更新容器

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

  1. Azure 门户中导航到你的 AKS 群集资源。 在“设置”下,选择“服务连接器(预览版)”

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

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

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

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

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

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

更新应用程序代码

最后一步,按照以下说明更新应用程序代码以使用环境变量。

清理资源

如果不再需要在本教程中创建的资源,可以通过删除 Azure 资源组来删除它们。

使用 az group delete 命令删除资源组。

az group delete --resource-group $RESOURCE_GROUP

阅读以下文章,详细了解服务连接器的概念以及它如何帮助 AKS 连接到 Azure 服务: