Clústeres invitados en una red virtual
Las máquinas virtuales conectadas a una red virtual solo pueden usar las direcciones IP que la Controladora de red ha asignado para comunicarse en la red. Las tecnologías de agrupación en clústeres que requieren una dirección IP flotante, como los clústeres de conmutación por error de Microsoft, requieren algunos pasos adicionales para funcionar correctamente.
El método para hacer que la dirección IP flotante sea accesible es usar una dirección IP virtual (VIP) del equilibrador de carga de software (SLB). El equilibrador de carga de software debe configurarse con un sondeo de estado en un puerto de esa dirección IP para que SLB dirija el tráfico a la máquina que tiene esa dirección IP.
Ejemplo: configuración del equilibrador de carga
En este ejemplo se supone que ya ha creado las VM que se convertirán en nodos de clúster y las ha asociado a una instancia de Virtual Network. Para obtener instrucciones, consulte Creación de una máquina virtual y conexión a una red VLAN o red virtual de inquilino.
En este ejemplo, creará una dirección IP virtual (192.168.2.100) para representar la dirección IP flotante del clúster y configurará un sondeo de estado para supervisar el puerto TCP 59999 para determinar qué nodo es el activo.
Seleccione la dirección VIP.
Prepárese asignando una dirección IP VIP, que puede ser cualquier dirección reservada o sin usar en la misma subred que los nodos del clúster. La dirección VIP debe coincidir con la dirección flotante del clúster.
$VIP = "192.168.2.100" $subnet = "Subnet2" $VirtualNetwork = "MyNetwork" $ResourceId = "MyNetwork_InternalVIP"
Cree el objeto de propiedades del equilibrador de carga.
$LoadBalancerProperties = new-object Microsoft.Windows.NetworkController.LoadBalancerProperties
Cree una dirección IP de front-end.
$LoadBalancerProperties.frontendipconfigurations += $FrontEnd = new-object Microsoft.Windows.NetworkController.LoadBalancerFrontendIpConfiguration $FrontEnd.properties = new-object Microsoft.Windows.NetworkController.LoadBalancerFrontendIpConfigurationProperties $FrontEnd.resourceId = "Frontend1" $FrontEnd.resourceRef = "/loadBalancers/$ResourceId/frontendIPConfigurations/$($FrontEnd.resourceId)" $FrontEnd.properties.subnet = new-object Microsoft.Windows.NetworkController.Subnet $FrontEnd.properties.subnet.ResourceRef = "/VirtualNetworks/MyNetwork/Subnets/Subnet2" $FrontEnd.properties.privateIPAddress = $VIP $FrontEnd.properties.privateIPAllocationMethod = "Static"
Cree un grupo de back-end para contener los nodos del clúster.
$BackEnd = new-object Microsoft.Windows.NetworkController.LoadBalancerBackendAddressPool $BackEnd.properties = new-object Microsoft.Windows.NetworkController.LoadBalancerBackendAddressPoolProperties $BackEnd.resourceId = "Backend1" $BackEnd.resourceRef = "/loadBalancers/$ResourceId/backendAddressPools/$($BackEnd.resourceId)" $LoadBalancerProperties.backendAddressPools += $BackEnd
Agregue un sondeo para detectar en qué nodo de clúster está actualmente activa la dirección flotante.
Nota
La consulta de sondeo se realiza en la dirección permanente de la VM en el puerto definido a continuación. El puerto solo debe responder en el nodo activo.
$LoadBalancerProperties.probes += $lbprobe = new-object Microsoft.Windows.NetworkController.LoadBalancerProbe $lbprobe.properties = new-object Microsoft.Windows.NetworkController.LoadBalancerProbeProperties $lbprobe.ResourceId = "Probe1" $lbprobe.resourceRef = "/loadBalancers/$ResourceId/Probes/$($lbprobe.resourceId)" $lbprobe.properties.protocol = "TCP" $lbprobe.properties.port = "59999" $lbprobe.properties.IntervalInSeconds = 5 $lbprobe.properties.NumberOfProbes = 11
Agregue las reglas de equilibrio de carga para el puerto TCP 1433.
Puede modificar el protocolo y el puerto según sea necesario. También puede repetir este paso varias veces para otros puertos y protocolos en esta dirección VIP. Es importante que EnableFloatingIP se establezca en $true porque esto indica al equilibrador de carga que envíe el paquete al nodo con la dirección VIP original en su lugar.
$LoadBalancerProperties.loadbalancingRules += $lbrule = new-object Microsoft.Windows.NetworkController.LoadBalancingRule $lbrule.properties = new-object Microsoft.Windows.NetworkController.LoadBalancingRuleProperties $lbrule.ResourceId = "Rules1" $lbrule.properties.frontendipconfigurations += $FrontEnd $lbrule.properties.backendaddresspool = $BackEnd $lbrule.properties.protocol = "TCP" $lbrule.properties.frontendPort = $lbrule.properties.backendPort = 1433 $lbrule.properties.IdleTimeoutInMinutes = 4 $lbrule.properties.EnableFloatingIP = $true $lbrule.properties.Probe = $lbprobe
Cree el equilibrador de carga en la Controladora de red.
$lb = New-NetworkControllerLoadBalancer -ConnectionUri $URI -ResourceId $ResourceId -Properties $LoadBalancerProperties -Force
Agregue los nodos de clúster al grupo de back-end.
Puede agregar tantos nodos al grupo como necesite para el clúster.
# Cluster Node 1 $nic = get-networkcontrollernetworkinterface -connectionuri $uri -resourceid "ClusterNode1_Network-Adapter" $nic.properties.IpConfigurations[0].properties.LoadBalancerBackendAddressPools += $lb.properties.backendaddresspools[0] $nic = new-networkcontrollernetworkinterface -connectionuri $uri -resourceid $nic.resourceid -properties $nic.properties -force # Cluster Node 2 $nic = get-networkcontrollernetworkinterface -connectionuri $uri -resourceid "ClusterNode2_Network-Adapter" $nic.properties.IpConfigurations[0].properties.LoadBalancerBackendAddressPools += $lb.properties.backendaddresspools[0] $nic = new-networkcontrollernetworkinterface -connectionuri $uri -resourceid $nic.resourceid -properties $nic.properties -force
Una vez que haya creado el equilibrador de carga y agregado las interfaces de red al grupo de back-end, estará listo para configurar el clúster.
(Opcional) Si usa un clúster de conmutación por error de Microsoft, continúe con el ejemplo siguiente.
Ejemplo 2: Configuración de un clúster de conmutación por error de Microsoft
Puede llevar a cabo los pasos siguientes para configurar un clúster de conmutación por error.
Instale y configure las propiedades de un clúster de conmutación por error.
add-windowsfeature failover-clustering -IncludeManagementTools Import-module failoverclusters $ClusterName = "MyCluster" $ClusterNetworkName = "Cluster Network 1" $IPResourceName = $ILBIP = "192.168.2.100" $nodes = @("DB1", "DB2")
Cree el clúster en un nodo.
New-Cluster -Name $ClusterName -NoStorage -Node $nodes[0]
Detenga el recurso del clúster.
Stop-ClusterResource "Cluster Name"
Establezca la dirección IP del clúster y el puerto de sondeo.
La dirección IP debe coincidir con la dirección IP de front-end usada en el ejemplo anterior y el puerto de sondeo debe coincidir con el puerto de sondeo del ejemplo anterior.
Get-ClusterResource "Cluster IP Address" | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
Inicie los recursos del clúster.
Start-ClusterResource "Cluster IP Address" -Wait 60 Start-ClusterResource "Cluster Name" -Wait 60
Agregue los nodos restantes.
Add-ClusterNode $nodes[1]
El clúster está activo. El tráfico que va a la dirección VIP en el puerto especificado se dirige al nodo activo.