Partager via


Clustering invité dans un réseau virtuel

Les machines virtuelles connectées à un réseau virtuel sont uniquement autorisées à utiliser les adresses IP que le contrôleur de réseau a affectées pour communiquer sur le réseau. Les technologies de clustering qui nécessitent une adresse IP flottante, comme le clustering de basculement Microsoft, nécessitent des étapes supplémentaires pour fonctionner correctement.

La méthode permettant d’atteindre l’adresse IP flottante consiste à utiliser une adresse IP virtuelle (VIP) Software Load Balancer (SLB). L’équilibreur de charge logiciel doit être configuré avec une sonde d’intégrité sur un port sur cette adresse IP afin que SLB dirige le trafic vers l’ordinateur qui possède actuellement cette adresse IP.

Exemple : Configuration de l’équilibreur de charge

Cet exemple part du principe que vous avez déjà créé les machines virtuelles qui deviendront des nœuds de cluster et que vous les avez attachées à un Réseau virtuel. Pour obtenir des conseils, consultez Créer une machine virtuelle et établir la connexion à un réseau virtuel locataire ou un réseau local virtuel.

Dans cet exemple, vous allez créer une adresse IP virtuelle (192.168.2.100) pour représenter l’adresse IP flottante du cluster et configurer une sonde d’intégrité pour surveiller le port TCP 59999 afin de déterminer le nœud actif.

  1. Sélectionnez l’adresse IP virtuelle.

    Préparez-vous en affectant une adresse IP VIP, qui peut être n’importe quelle adresse inutilisée ou réservée dans le même sous-réseau que les nœuds de cluster. L’adresse IP virtuelle doit correspondre à l’adresse flottante du cluster.

    $VIP = "192.168.2.100"
    $subnet = "Subnet2"
    $VirtualNetwork = "MyNetwork"
    $ResourceId = "MyNetwork_InternalVIP"
    
  2. Créez l’objet de propriétés de l’équilibreur de charge.

    $LoadBalancerProperties = new-object Microsoft.Windows.NetworkController.LoadBalancerProperties
    
  3. Créez une adresse IP frontale.

    $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"
    
  4. Créez un pool de back-ends pour contenir les nœuds de cluster.

    $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
    
  5. Ajoutez une sonde pour détecter le nœud de cluster sur lequel l’adresse flottante est actuellement active.

    Notes

    La sonde interroge l’adresse permanente de la machine virtuelle au niveau du port défini ci-dessous. Le port doit répondre uniquement sur le nœud actif.

    $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
    
  6. Ajoutez les règles d’équilibrage de charge pour le port TCP 1433.

    Vous pouvez modifier le protocole et le port en fonction des besoins. Vous pouvez également répéter cette étape plusieurs fois pour d’autres ports et protocoles sur cette VIP. Il est important qu’EnableFloatingIP soit défini sur $true, car cela indique à l’équilibreur de charge d’envoyer le paquet au nœud avec l’adresse IP virtuelle d’origine en place.

    $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
    
  7. Créez l’équilibreur de charge dans le contrôleur de réseau.

    $lb = New-NetworkControllerLoadBalancer -ConnectionUri $URI -ResourceId $ResourceId -Properties $LoadBalancerProperties -Force
    
  8. Ajoutez les nœuds de cluster au pool de back-ends.

    Vous pouvez ajouter autant de nœuds au pool que nécessaire pour le cluster.

    # 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
    

    Une fois que vous avez créé l’équilibreur de charge et ajouté les interfaces réseau au pool de back-ends, vous êtes prêt à configurer le cluster.

  9. (Facultatif) Si vous utilisez un cluster de basculement Microsoft, passez à l’exemple suivant.

Exemple 2 : Configuration d’un cluster de basculement Microsoft

Vous pouvez utiliser les étapes suivantes pour configurer un cluster de basculement.

  1. Installez et configurez les propriétés d’un cluster de basculement.

    add-windowsfeature failover-clustering -IncludeManagementTools
    Import-module failoverclusters
    
    $ClusterName = "MyCluster"
    
    $ClusterNetworkName = "Cluster Network 1"
    $IPResourceName =
    $ILBIP = "192.168.2.100"
    
    $nodes = @("DB1", "DB2")
    
  2. Créez le cluster sur un nœud.

    New-Cluster -Name $ClusterName -NoStorage -Node $nodes[0]
    
  3. Arrêtez la ressource de cluster.

    Stop-ClusterResource "Cluster Name" 
    
  4. Définissez l’adresse IP du cluster et le port de sonde.

    L’adresse IP doit correspondre à l’adresse IP frontale utilisée dans l’exemple précédent, et le port de sonde doit correspondre au port de sonde dans l’exemple précédent.

    Get-ClusterResource "Cluster IP Address" | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    
  5. Démarrez les ressources du cluster.

     Start-ClusterResource "Cluster IP Address"  -Wait 60 
     Start-ClusterResource "Cluster Name"  -Wait 60 
    
  6. Ajoutez les nœuds restants.

    Add-ClusterNode $nodes[1]
    

Votre cluster est actif. Le trafic vers l’adresse IP virtuelle sur le port spécifié est dirigé vers le nœud actif.