重要
SQL 托管实例现在具有对专用终结点的本机支持。 建议不实现本文档中的解决方案,而是直接为 SQL 托管实例资源创建专用终结点,如托管专用终结点中所述。
本教程提供使用 Azure 门户设置专用链接服务,并使用专用终结点从托管 VNET 访问 SQL 托管实例的步骤。
注意
使用此解决方案连接到 Azure SQL 数据库托管实例时,不支持“重定向”连接策略,需要切换到“代理”模式。
先决条件
- Azure 订阅。 如果没有 Azure 订阅,请在开始前创建一个试用帐户。
- 虚拟网络。 如果你没有虚拟网络,请按照创建虚拟网络中所述创建一个。
- 虚拟网络到本地网络。 使用 ExpressRoute 或 VPN 在虚拟网络与本地网络之间创建连接。
- 启用了托管 VNET 的数据工厂。 如果你没有数据工厂或者未启用托管 VNET,请按照创建具有托管 VNET 的数据工厂中所述创建一个。
创建资源的子网
使用门户在虚拟网络中创建子网。
| 子网 | 说明 | 
|---|---|
| be-subnet | 后端服务器的子网 | 
| fe-subnet | 标准内部负载均衡器的子网 | 
| pls-subnet | 专用链接服务的子网 | 
创建标准负载均衡器
使用门户创建标准内部负载均衡器。
- 在门户顶部的搜索栏中,在搜索窗格的“服务”部分中搜索并选择“负载均衡器” 。 
- 在“负载均衡”服务页上,选择“创建”以创建新的负载均衡器 。 
- 在“创建负载均衡器”页的“基本信息”选项卡中,输入或选择以下详细信息: - 设置 - 值 - 订阅 - 选择订阅。 - 资源组 - 选择资源组。 - 名称 - 输入 myLoadBalancer。 - 区域 - 选择“中国北部 3”。 - SKU - 选择“标准”。 - 类型 - 选择“内部”。 
- 在“创建负载均衡器”页的“前端 IP 配置”选项卡上,选择“添加前端 IP 配置”,然后在“添加前端 IP 地址”配置窗格中输入或选择以下详细信息 : - 设置 - 值 - 前端 IP 名称 - 输入前端 IP 的名称 - 虚拟网络 - 选择你的虚拟网络。 - 子网 - 选择在上一步骤中创建的“fe-subnet”。 - IP 地址分配 - 选择“动态”。 - 可用性区域 - 选择“区域冗余”。 
- 接受剩余设置的默认值,然后选择“查看 + 创建”。 
- 在“查看 + 创建”选项卡中,选择“创建”。 
创建负载均衡器资源
创建后端池
后端地址池包含连接到负载均衡器的虚拟 (NIC) 的 IP 地址。
创建后端地址池 myBackendPool 以包含用于对 Internet 流量进行负载均衡的虚拟机。
- 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择“myLoadBalancer”。
- 在“设置”下,依次选择“后端池”、“添加”。
- 在“添加后端池”页上,键入 myBackendPool 作为后端池的名称,然后选择“添加”。
创建运行状况探测器
负载均衡器使用运行状况探测器监视应用的状态。
运行状况探测器基于 VM 对运行状况检查的响应,在负载均衡器中添加或删除 VM。
创建名为 myHealthProbe 的运行状况探测来监视 VM 的运行状况。
- 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择“myLoadBalancer”。 
- 在“设置”下,依次选择“运行状况探测”、“添加”。 - 设置 - 值 - 名称 - 输入 myHealthProbe。 - 协议 - 选择“TCP”。 - 端口 - 输入 22。 - 时间间隔 - 输入 15 作为两次探测尝试之间的时间间隔(以秒为单位)。 - 不正常阈值 - 选择“2”,作为将 VM 视为不正常所要达到的不正常阈值或连续探测失败次数。 
- 将其余字段保留默认值,然后选择“确定”。 
创建负载均衡器规则
负载均衡器规则用于定义将流量分配给 VM 的方式。 定义传入流量的前端 IP 配置和后端 IP 池以接收流量。 源端口和目标端口在规则中定义。
在本部分中,你将创建创建负载均衡器规则:
- 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择“myLoadBalancer”。 
- 在“设置”下,依次选择“负载均衡规则”、“添加” 。 
- 使用以下值配置负载均衡规则: - 设置 - 值 - 名称 - 输入 myRule。 - IP 版本 - 选择“IPv4”。 - 前端 IP 地址 - 选择“LoadBalancerFrontEnd”。 - 协议 - 选择“TCP”。 - 端口 - 输入 1433。 - 后端端口 - 输入 1433。 - 后端池 - 选择“myBackendPool”。 - 运行状况探测 - 选择“myHealthProbe”。 - 空闲超时(分钟) - 将滑块移动到 15 分钟。 - TCP 重置 - 选择“已禁用”。 
- 将剩余的字段保留默认设置,然后选择“确定”。 
创建专用链接服务
在本部分,在标准负载均衡器后创建专用链接服务。
- 在 Azure 门户页面的左上部分,选择“创建资源”。 
- 在“在市场中搜索”框中搜索“专用链接” 。 
- 选择“创建”。 
- 在“专用链接中心”下的“概述”中,选择蓝色的“创建专用链接服务”按钮 。 
- 在“创建专用链接服务”的“基本信息”选项卡中,输入或选择以下信息 : - 设置 - 值 - 项目详细信息 - 订阅 - 选择订阅。 - 资源组 - 选择资源组。 - 实例详细信息 - 名称 - 输入 myPrivateLinkService。 - 区域 - 选择“中国北部 3”。 
- 选择“出站设置”选项卡或选择页面底部的“下一步: 出站设置”。 
- 在“出站设置”选项卡中,输入或选择以下信息: - 设置 - 值 - 负载均衡器 - 选择“myLoadBalancer”。 - 负载均衡器前端 IP 地址 - 选择“LoadBalancerFrontEnd”。 - 源 NAT 子网 - 选择“pls-subnet”。 - 启用 TCP 代理 V2 - 保留默认值“否”。 - 专用 IP 地址设置 - 保留默认设置。 
- 选择“访问安全”选项卡或选择页面底部的“下一步: 访问安全”。 
- 在“访问安全”选项卡中保留默认值“仅限基于角色的访问控制” 。 
- 选择“标记”选项卡或选择页面底部的“下一步: 标记”。 
- 选择“查看 + 创建”选项卡或选择页面底部的“下一步: 查看 + 创建”。 
- 在“查看 + 创建”选项卡中,选择“创建” 。 
创建后端服务器
- 在门户的左上方,选择“创建资源”>“计算”>“虚拟机”。 
- 在“创建虚拟机”中,在“基本信息”选项卡中键入或选择值: - 设置 - 值 - 项目详细信息 - 订阅 - 选择 Azure 订阅。 - 资源组 - 选择资源组。 - 实例详细信息 - 虚拟机名称 - 输入“myVM1”。 - 区域 - 选择“中国北部 3”。 - 可用性选项 - 选择“可用性区域”。 - 可用性区域 - 选择“1”。 - 图像 - 选择“Ubuntu Server 18.04LTS - Gen1”。 - Azure Spot 实例 - 请选择“否”。 - 大小 - 选择 VM 大小或采用默认设置。 - 管理员帐户 - 用户名 - 输入用户名。 - SSH 公钥源 - 生成新的密钥对。 - 密钥对名称 - mySSHKey。 - 入站端口规则 - 公共入站端口 - 无。 
- 选择“网络”选项卡,或选择“下一步: 磁盘”,然后选择“下一步: 网络”。 
- 在“网络”选项卡中,选择或输入: - 设置 - 值 - 网络接口 - 虚拟网络 - 选择你的虚拟网络。 - 子网 - be-subnet。 - 公共 IP - 选择无。 - NIC 网络安全组 - 选择无。 - 负载均衡 - 是否将此虚拟机置于现有负载均衡解决方案之后? - 请选择“是”。 - 负载均衡设置 - 负载均衡选项 - 选择“Azure 负载均衡”。 - 选择负载均衡器 - 选择“myLoadBalancer”。 - 选择后端池 - 选择“myBackendPool”。 
- 选择“查看 + 创建”。 
- 检查设置,然后选择“创建”。 
- 可重复步骤 1 至 6,创建多个后端服务器 VM 来实现高可用性。 
创建到终结点的转发规则
- 登录并将脚本 ip_fwd.sh 复制到后端服务器 VM。 - 注意 - 此脚本将仅暂时设置 IP 转发。 若要使此设置永久化,请确保在文件 /etc/sysctl.conf 中取消注释“net.ipv4.ip_forward=1”行 
- 使用以下选项运行该脚本: 
 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
 - 是 SQL 托管实例的主机。 
- 运行以下命令并检查后端服务器 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 时,都要再次运行该脚本。 
创建用于连接专用链接服务的专用终结点
- 在左侧菜单中选择“所有服务”,选择“所有资源”,然后在资源列表中选择你的数据工厂。 
- 选择“创作和监视”,在单独的选项卡中启动数据工厂 UI。 
- 转到“管理”选项卡,然后转到“托管专用终结点”部分 。 
- 在“托管专用终结点”下选择“+新建” 。 
- 在列表中选择“专用链接服务”磁贴,然后选择“继续” 。 
- 输入专用终结点的名称,然后在专用链接服务列表中选择“myPrivateLinkService”。 
- 添加目标 SQL 托管实例的 FQDN。   
- 创建专用终结点。 
创建链接服务并测试连接
- 转到“管理”选项卡,然后转到“托管专用终结点”部分 。 
- 选择“链接服务”下的“+ 新建” 。 
- 在列表中选择“Azure SQL 数据库托管实例”磁贴,然后选择“继续” 。   
- 启用“交互式创作”。   
- 输入 SQL 托管实例的主机,以及用户名和密码 。 - 注意 - 请手动输入 SQL 托管实例主机。 否则,在选择列表中它不是完全限定的域名。 
- 然后单击“测试连接”。   
相关内容
请继续学习以下教程,了解如何使用专用终结点从数据工厂托管 VNET 访问本地 SQL Server:
 
              
              