开始为云服务创建面向 Internet 的负载均衡器

Azure load balancer 是位于第 4 层 (TCP, UDP) 的负载均衡器。 该负载均衡器可以在云服务或负载均衡器集的虚拟机中运行状况良好的服务实例之间分配传入流量,从而提供高可用性。 Azure Load Balancer 还可以在多个端口和/或多个 IP 地址上显示这些服务。

可以将负载均衡器配置为用于:

  • 对传入到虚拟机 (VM) 的 Internet 流量进行平衡负载。 我们将此方案中的负载均衡器作为一个面向 Internet 的负载均衡器
  • 对虚拟网络 (VNet) 和云服务中 VM 之间的流量或本地计算机和跨界虚拟网络中 VM 之间的流量进行平衡负载。 我们将此方案中的负载均衡器作为一个内部负载均衡器 (ILB)
  • 将外部流量转发到特定的 VM 实例。

重要

在使用 Azure 资源之前,请务必了解 Azure 当前使用两种部署模型:Azure 资源管理器部署模型和经典部署模型。 在使用任何 Azure 资源之前,请确保了解 部署模型和工具 。 可以通过单击本文顶部的选项卡来查看不同工具的文档。 本文介绍经典部署模型。 还可以了解如何使用 Azure 资源管理器创建面向 Internet 的负载均衡器

将自动为云服务配置负载均衡器,并可以通过服务模型自定义云服务。

使用服务定义文件创建负载均衡器

可以利用用于 .NET 2.5 的 Azure SDK 来更新云服务。 云服务的终结点设置在服务定义.csdef 文件中进行。

下面的示例演示如何配置云部署的 servicedefinition.csdef 文件:

检查云部署生成的 .csdef 文件的代码段,可以看到配置的外部终结点,以便在端口 10000、10001 和 10002 上使用端口 HTTP。

<ServiceDefinition name="Tenant">
    <WorkerRole name="FERole" vmsize="Small">
        <Endpoints>
            <InputEndpoint name="FE_External_Http" protocol="http" port="10000" />
            <InputEndpoint name="FE_External_Tcp"  protocol="tcp"  port="10001" />
            <InputEndpoint name="FE_External_Udp"  protocol="udp"  port="10002" />

            <InputEndpoint name="HTTP_Probe" protocol="http" port="80" loadBalancerProbe="MyProbe" />

            <InstanceInputEndpoint name="InstanceEP" protocol="tcp" localPort="80">
                <AllocatePublicPortFrom>
                    <FixedPortRange min="10110" max="10120"  />
                </AllocatePublicPortFrom>
            </InstanceInputEndpoint>
            <InternalEndpoint name="FE_InternalEP_Tcp" protocol="tcp" />
        </Endpoints>
    </WorkerRole>
</ServiceDefinition>

检查云服务的负载均衡器运行状况状态

下面是运行状况探测器的示例:

<LoadBalancerProbes>
    <LoadBalancerProbe name="MyProbe" protocol="http" path="Probe.aspx" intervalInSeconds="5" timeoutInSeconds="100" />
</LoadBalancerProbes>

负载均衡器组合了终结点信息和探测器信息,以便以 http://{DIP of VM}:80/Probe.aspx 格式创建可用于查询服务的运行状况的 URL。

该服务通过同一 IP 地址检测定期探测。 这是来自正在运行虚拟机的节点主机的运行状况探测请求。 该服务必须对负载均衡器以 HTTP 200 状态代码进行响应,以假设该服务处于正常状态。 任何其他 HTTP 状态代码(例如 503)会直接将虚拟机从轮转列表中删除。

探测器定义还控制探测的频率。 在上面的示例中,负载均衡器每隔 5 秒探测一次终结点。 如果在 10 秒(两个探测时间间隔)内未收到肯定应答,则认为探测器关闭,并且虚拟机将从轮转列表中删除。 同样,如果该服务已退出轮转列表并且收到肯定应答,则该服务将立即回到轮转列表。 如果该服务在正常和不正常之间波动,负载均衡器可以决定推迟将该服务重新引入到轮转列表,直到多次探测的结果为正常。

有关详细信息,请查看运行状况探测的服务定义架构

后续步骤

开始配置内部负载均衡器

配置负载均衡器分发模式

配置负载均衡器的空闲 TCP 超时设置