Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

Using Microsoft Network Load Balancing (NLB)

Modified on July 19, 2024view on GitHub

This example guide is designed to configure a cluster and its various web servers in a Network Load Balancing (NLB) environment in order to enable the load balancing feature in ProGet, Otter, and BuildMaster. This example guide uses Microsoft Windows NLB feature as a load balancer, and all machines in this cluster are VMs, though that is not a strict requirement. You can manage your cluster by using the cluster management page.

This guide is intended to help you set up your load-balanced or High Availability (HA) installation. ProGet, BuildMaster, and Otter were built to be compatible with any load-balancing platform (see load balancing and automatic failover for more information).

Prerequisites

To begin, you must meet the prerequisites, which are:

Microsoft NLB Prerequisites

For Microsoft NLB installs, the following are additional prerequisites that should be considered:

  • 2 network interfaces (NICs) total (one dedicated for the NLB cluster), each with static IPs to host the product website
    • Three machines to install ProGet, BuildMaster, or Otter (example machine names in italics)
      • InedoSv1 (already has a product installed)
      • InedoSv2
      • InedoSv3
    • Machine to set up the NLB cluster (example machine names in italics)
      • Inedo_NLB
  • Cluster IP with subnet mask (see Configuring the Cluster below) mapped to the internet name and company domain (e.g. http://proget.kramerica.local/)
  • Address Resolution Protocol (ARP) entry using the cluster IP to the switch that routes into the NLB VLAN

Server Prerequisites

ProGet, Otter, and BuildMaster load balancing requires IIS. The required settings are outlined in IIS Roles & Features. You also have to configure additional features in the Server Manager by going to Features > Network Load Balancing in your ProGet, BuildMaster, or Otter instance.

Configuring the Cluster

To configure the cluster, follow these steps:

  • Connect to Inedo_NLB as the System user using a remote desktop connection
  • Open the NLB manager (Control Panel\All Control Panel Items\Administrative Tools\Network Load Balancing Manager)
    • Create a new cluster
    • Use the following as a guide to setup NLB: Microsoft's Network Load Balancing Cluster.
      Note: Session Affinity (sticky sessions) is not required.

Cluster Properties Example

  1. IP - provided by IT, e.g. 10.0.0.100
  2. Subnet mask - provided by IT, e.g. 255.255.250.0
  3. Internet name - provided by IT, e.g. proget.kramerica.local
  4. Operation mode - Multicast
  5. Port range - 80 to 80
  6. Protocols - TCP
  7. Filtering mode - Multiple host\Single | None (None option preferred)
    • None (preferred); indicates that any host in the cluster which matches to the port rule can handle the client request
    • Multiple host\Single; indicates that one host in the NLB cluster can process traffic from the same client. The requests are basically transmitted to the same host every time NLB reads the IP address.

Configuring the Servers

Follow the Website & Service configuration for installing each server and, optionally, the High Availability configuration to configure HA.

The following additional IIS configuration should be considered:

  • Use the bindings as per the Cluster Properties:
    • Cluster IP - provided by IT (e.g. 10.0.0.100).
    • Port - 80
    • Host name - provided by IT (e.g. proget.kramerica.local)