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

重要

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

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

显示 SQL MI 访问模型的屏幕截图。

注意

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

先决条件

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

创建资源的子网

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

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

显示子网的屏幕截图。

创建标准负载均衡器

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

  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 托管实例的主机。

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

    显示命令记录的屏幕截图。

    注意

    注意:如果有多个 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。

    显示专用终结点设置的屏幕截图。

  8. 创建专用终结点。

创建链接服务并测试连接

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

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

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

    显示链接服务创建页的屏幕截图。

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

    显示如何启用“交互式创作”的屏幕截图。

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

    注意

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

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

    显示 SQL MI 链接服务创建页的屏幕截图。

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