教程:如何使用专用终结点从数据工厂托管 VNET 访问 SQL 托管实例

重要

SQL 托管实例现在具有对专用终结点的本机支持。 建议不实现本文档中的解决方案,而是直接为 SQL 托管实例资源创建专用终结点,如托管专用终结点中所述。

本教程提供使用 Azure 门户设置专用链接服务,并使用专用终结点从托管 VNET 访问 SQL 托管实例的步骤。

Screenshot that shows the access model of SQL MI.

注意

使用此解决方案连接到 Azure SQL 数据库托管实例时,不支持“重定向”连接策略,需要切换到“代理”模式。

先决条件

  • Azure 订阅。 如果没有 Azure 订阅,可在开始前创建一个试用帐户
  • 虚拟网络。 如果你没有虚拟网络,请按照创建虚拟网络中所述创建一个。
  • 虚拟网络到本地网络。 使用 ExpressRouteVPN 在虚拟网络与本地网络之间创建连接。
  • 启用了托管 VNET 的数据工厂。 如果你没有数据工厂或者未启用托管 VNET,请按照创建具有托管 VNET 的数据工厂中所述创建一个。

创建资源的子网

使用门户在虚拟网络中创建子网

子网 说明
be-subnet 后端服务器的子网
fe-subnet 标准内部负载均衡器的子网
pls-subnet 专用链接服务的子网

Screenshot that shows the subnets.

创建标准负载均衡器

使用门户创建标准内部负载均衡器。

  1. 在门户顶部的搜索栏中,在搜索窗格的“服务”部分中搜索并选择“负载均衡器” 。

  2. 在“负载均衡”服务页上,选择“创建”以创建新的负载均衡器 。

  3. 在“创建负载均衡器”页的“基本信息”选项卡中,输入或选择以下详细信息:

    设置
    订阅 选择订阅。
    资源组 选择资源组。
    名称 输入 myLoadBalancer
    区域 选择“中国北部 3”。
    SKU 选择“标准”。
    类型 选择“内部”。
  4. 在“创建负载均衡器”页的“前端 IP 配置”选项卡上,选择“添加前端 IP 配置”,然后在“添加前端 IP 地址”配置窗格中输入或选择以下详细信息 :

    设置
    前端 IP 名称 输入前端 IP 的名称
    虚拟网络 选择你的虚拟网络。
    子网 选择在上一步骤中创建的“fe-subnet”。
    IP 地址分配 选择“动态”。
    可用性区域 选择“区域冗余”。
  5. 接受剩余设置的默认值,然后选择“查看 + 创建”。

  6. 在“查看 + 创建”选项卡中,选择“创建”。

创建负载均衡器资源

创建后端池

后端地址池包含连接到负载均衡器的虚拟 (NIC) 的 IP 地址。

创建后端地址池 myBackendPool 以包含用于对 Internet 流量进行负载均衡的虚拟机。

  1. 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择“myLoadBalancer”。
  2. 在“设置”下,依次选择“后端池”、“添加”。
  3. 在“添加后端池”页上,键入 myBackendPool 作为后端池的名称,然后选择“添加”。

创建运行状况探测器

负载均衡器使用运行状况探测器监视应用的状态。

运行状况探测器基于 VM 对运行状况检查的响应,在负载均衡器中添加或删除 VM。

创建名为 myHealthProbe 的运行状况探测来监视 VM 的运行状况。

  1. 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择“myLoadBalancer”。

  2. 在“设置”下,依次选择“运行状况探测”、“添加”。

    设置
    名称 输入 myHealthProbe
    协议 选择“TCP”。
    端口 输入 22。
    时间间隔 输入 15 作为两次探测尝试之间的时间间隔(以秒为单位)。
    不正常阈值 选择“2”,作为将 VM 视为不正常所要达到的不正常阈值或连续探测失败次数。
  3. 将其余字段保留默认值,然后选择“确定”。

创建负载均衡器规则

负载均衡器规则用于定义将流量分配给 VM 的方式。 定义传入流量的前端 IP 配置和后端 IP 池以接收流量。 源端口和目标端口在规则中定义。

在本部分中,你将创建创建负载均衡器规则:

  1. 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择“myLoadBalancer”。

  2. 在“设置”下,依次选择“负载均衡规则”、“添加” 。

  3. 使用以下值配置负载均衡规则:

    设置
    名称 输入 myRule。
    IP 版本 选择“IPv4”。
    前端 IP 地址 选择“LoadBalancerFrontEnd”。
    协议 选择“TCP”。
    端口 输入 1433。
    后端端口 输入 1433。
    后端池 选择“myBackendPool”。
    运行状况探测 选择“myHealthProbe”。
    空闲超时(分钟) 将滑块移动到 15 分钟。
    TCP 重置 选择“已禁用”。
  4. 将剩余的字段保留默认设置,然后选择“确定”。

在本部分,在标准负载均衡器后创建专用链接服务。

  1. 在 Azure 门户页面的左上部分,选择“创建资源”。

  2. 在“在市场中搜索”框中搜索“专用链接” 。

  3. 选择“创建”。

  4. 在“专用链接中心”下的“概述”中,选择蓝色的“创建专用链接服务”按钮 。

  5. 在“创建专用链接服务”的“基本信息”选项卡中,输入或选择以下信息 :

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择你的资源组。
    实例详细信息
    名称 输入 myPrivateLinkService
    区域 选择“中国北部 3”。
  6. 选择“出站设置”选项卡或选择页面底部的“下一步: 出站设置”。

  7. 在“出站设置”选项卡中,输入或选择以下信息:

    设置 Value
    负载均衡器 选择“myLoadBalancer”。
    负载均衡器前端 IP 地址 选择“LoadBalancerFrontEnd”。
    源 NAT 子网 选择“pls-subnet”。
    启用 TCP 代理 V2 保留默认值“否”。
    专用 IP 地址设置
    保留默认设置。
  8. 选择“访问安全”选项卡或选择页面底部的“下一步: 访问安全”。

  9. 在“访问安全”选项卡中保留默认值“仅限基于角色的访问控制” 。

  10. 选择“标记”选项卡或选择页面底部的“下一步: 标记”。

  11. 选择“查看 + 创建”选项卡或选择页面底部的“下一步: 查看 + 创建”。

  12. 在“查看 + 创建”选项卡中,选择“创建” 。

创建后端服务器

  1. 在门户的左上方,选择“创建资源”>“计算”>“虚拟机”。

  2. 在“创建虚拟机”中,在“基本信息”选项卡中键入或选择值:

    设置
    项目详细信息
    订阅 选择 Azure 订阅。
    资源组 选择你的资源组。
    实例详细信息
    虚拟机名称 输入“myVM1”。
    区域 选择“中国北部 3”。
    可用性选项 选择“可用性区域”。
    可用性区域 选择“1”。
    映像 选择“Ubuntu Server 18.04LTS - Gen1”。
    Azure Spot 实例 请选择“否”。
    大小 选择 VM 大小或采用默认设置。
    管理员帐户
    用户名 输入用户名。
    SSH 公钥源 生成新的密钥对。
    密钥对名称 mySSHKey。
    入站端口规则
    公共入站端口 无。
  3. 选择“网络”选项卡,或选择“下一步: 磁盘”,然后选择“下一步: 网络”。

  4. 在“网络”选项卡中,选择或输入:

    设置
    网络接口
    虚拟网络 选择你的虚拟网络。
    子网 be-subnet。
    公共 IP 选择
    NIC 网络安全组 选择“无”。
    负载均衡
    是否将此虚拟机置于现有负载均衡解决方案之后? 请选择“是”。
    负载均衡设置
    负载均衡选项 选择“Azure 负载均衡”。
    选择负载均衡器 选择“myLoadBalancer”。
    选择后端池 选择“myBackendPool”。
  5. 选择“查看 + 创建”。

  6. 检查设置,然后选择“创建”。

  7. 可重复步骤 1 至 6,创建多个后端服务器 VM 来实现高可用性。

创建到终结点的转发规则

  1. 登录并将脚本 ip_fwd.sh 复制到后端服务器 VM。

    注意

    此脚本将仅暂时设置 IP 转发。 若要使此设置永久化,请确保在文件 /etc/sysctl.conf 中取消注释“net.ipv4.ip_forward=1”行

  2. 使用以下选项运行该脚本:
    sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    是 SQL 托管实例的主机。

    Screenshot that shows SQL MI host.

  3. 运行以下命令并检查后端服务器 VM 中的 iptables。 在 iptables 中,可以看到一条包含目标 IP 的记录。
    sudo iptables -t nat -v -L PREROUTING -n --line-number

    Screenshot that shows the command record.

    注意

    注意:如果有多个 SQL MI 或其他数据源,则需要使用不同的端口定义多个负载均衡器规则和 IP 表记录。 否则会发生某种冲突。 例如,

    负载均衡器规则中的端口 负载均衡器规则中的后端端口 在后端服务器 VM 中运行的命令
    SQL MI 1 1433 1433 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    SQL MI 2 1434 1434 sudo ./ip_fwd.sh -i eth0 -f 1434 -a <FQDN/IP> -b 1433

    注意

    每次重启负载均衡器后的 VM 时,都要再次运行该脚本。

  1. 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择你的数据工厂。

  2. 选择“创作和监视”,在单独的选项卡中启动数据工厂 UI。

  3. 转到“管理”选项卡,然后转到“托管专用终结点”部分 。

  4. 在“托管专用终结点”下选择“+新建” 。

  5. 在列表中选择“专用链接服务”磁贴,然后选择“继续” 。

  6. 输入专用终结点的名称,然后在专用链接服务列表中选择“myPrivateLinkService”。

  7. 添加目标 SQL 托管实例的 FQDN。

    Screenshot that shows SQL MI host.

    Screenshot that shows the private endpoint settings.

  8. 创建专用终结点。

创建链接服务并测试连接

  1. 转到“管理”选项卡,然后转到“托管专用终结点”部分 。

  2. 选择“链接服务”下的“+ 新建” 。

  3. 在列表中选择“Azure SQL 数据库托管实例”磁贴,然后选择“继续” 。

    Screenshot that shows the linked service creation page.

  4. 启用“交互式创作”。

    Screenshot that shows how to enable Interactive Authoring.

  5. 输入 SQL 托管实例的主机,以及用户名和密码 。

    注意

    请手动输入 SQL 托管实例主机。 否则,选择列表中不会显示完全限定的域名。

  6. 然后单击“测试连接”。

    Screenshot that shows the SQL MI linked service creation page.

请继续学习以下教程,了解如何使用专用终结点从数据工厂托管 VNET 访问本地 SQL Server: