Schema för Azure Cloud Services (klassisk) Definition LoadBalancerProbe
Viktigt!
Cloud Services (klassisk) är nu inaktuellt för alla kunder från och med den 1 september 2024. Alla befintliga distributioner som körs stoppas och stängs av av Microsoft och data försvinner permanent från och med oktober 2024. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).
Lastbalanserarens avsökning är en kunddefinierad hälsoavsökning av UDP-slutpunkter och slutpunkter i rollinstanser. Är LoadBalancerProbe
inte ett fristående element. Det kombineras med webbrollen eller arbetsrollen i en tjänstdefinitionsfil. Mer än en roll kan använda en LoadBalancerProbe
.
Standardtillägget för tjänstdefinitionsfilen är .csdef.
Funktionen för en lastbalanserareavsökning
Azure Load Balancer ansvarar för att dirigera inkommande trafik till dina rollinstanser. Lastbalanseraren avgör vilka instanser som kan ta emot trafik genom att regelbundet avsökning av varje instans för att fastställa hälsotillståndet för den instansen. Lastbalanseraren avsöker varje instans flera gånger per minut. Det finns två olika alternativ för att tillhandahålla instanshälsa för lastbalanseraren – standardavsökningen för lastbalanseraren eller en anpassad lastbalanserareavsökning, som implementeras genom att definiera LoadBalancerProbe i .csdef-filen.
Standardavsökningen för lastbalanseraren använder gästagenten på den virtuella datorn, som lyssnar och svarar med ett HTTP 200 OK-svar endast när instansen är i tillståndet Klar (till exempel när instansen inte är i tillstånden Upptagen, Återvinning, Stoppa osv.). Om gästagenten inte svarar med HTTP 200 OK markerar Azure Load Balancer instansen som svarar inte och slutar skicka trafik till den instansen. Azure Load Balancer fortsätter att pinga instansen och om gästagenten svarar med en HTTP 200 skickar Azure Load Balancer trafik till den instansen igen. När du använder en webbroll körs webbplatskoden vanligtvis i w3wp.exe, som Azure Fabric och gästagenten inte övervakar. Fel i w3wp.exe (till exempel HTTP 500-svar) rapporteras inte till gästagenten och lastbalanseraren vet inte att ta bort den instansen från rotationen.
Den anpassade lastbalanserarens avsökning åsidosätter standardgästagentavsökningen och gör att du kan skapa din egen anpassade logik för att fastställa hälsotillståndet för rollinstansen. Lastbalanseraren avsöker regelbundet slutpunkten (var 15:e sekund som standard). Instansen beaktas i rotation om den svarar med en TCP ACK eller HTTP 200 inom tidsgränsen (standardvärdet är 31 sekunder). Den här processen kan vara användbar för att implementera din egen logik för att ta bort instanser från lastbalanserarens rotation (till exempel returnera en status som inte är 200 om instansen är över 90 % CPU). För webbroller som använder w3wp.exe innebär den här konfigurationen också att du får automatisk övervakning av webbplatsen, eftersom fel i webbplatskoden returnerar statusen icke-200 till lastbalanserarens avsökning. Om du inte definierar en LoadBalancerProbe i .csdef-filen används standardbeteendet för lastbalanserare (enligt beskrivningen ovan).
Om du använder en anpassad lastbalanseringsavsökning måste du se till att logiken tar hänsyn till metoden RoleEnvironment.OnStop. När du använder standardavsökningen för lastbalanserare tas instansen ur rotation innan OnStop anropas, men en anpassad lastbalanserareavsökning kan fortsätta att returnera 200 OK under OnStop-händelsen. Om du använder OnStop-händelsen för att rensa cacheminnet, stoppa tjänsten eller på annat sätt göra ändringar som kan påverka körningsbeteendet för din tjänst, måste du se till att din anpassade lastbalanserares avsökningslogik tar bort instansen från rotation.
Grundläggande tjänstdefinitionsschema för en lastbalanserareavsökning
Det grundläggande formatet för en tjänstdefinitionsfil som innehåller en lastbalanseringsavsökning är följande.
<ServiceDefinition …>
<LoadBalancerProbes>
<LoadBalancerProbe name="<load-balancer-probe-name>" protocol="[http|tcp]" path="<uri-for-checking-health-status-of-vm>" port="<port-number>" intervalInSeconds="<interval-in-seconds>" timeoutInSeconds="<timeout-in-seconds>"/>
</LoadBalancerProbes>
</ServiceDefinition>
Schemaelement
Elementet LoadBalancerProbes
i tjänstdefinitionsfilen innehåller följande element:
LoadBalancerProbes-element
Elementet LoadBalancerProbes
beskriver samlingen av lastbalanseringsavsökningar. Det här elementet är det överordnade elementet i LoadBalancerProbe-elementet.
LoadBalancerProbe-element
Elementet LoadBalancerProbe
definierar hälsoavsökningen för en modell. Du kan definiera flera avsökningar för lastbalanserare.
I följande tabell beskrivs elementets LoadBalancerProbe
attribut:
Attribut | Typ | Beskrivning |
---|---|---|
name |
string |
Obligatoriskt. Namnet på lastbalanserarens avsökning. Namnet måste vara unikt. |
protocol |
string |
Obligatoriskt. Anger protokollet för slutpunkten. Möjliga värden är http eller tcp . Om tcp anges krävs en mottagen ACK för att avsökningen ska lyckas. Om http anges krävs ett 200 OK-svar från den angivna URI:n för att avsökningen ska lyckas. |
path |
string |
Den URI som används för att begära hälsostatus från den virtuella datorn. path krävs om protocol är inställt på http . Annars är det inte tillåtet.Det finns inget standardvärde. |
port |
integer |
Valfritt. Porten för att kommunicera avsökningen. Det här attributet är valfritt för alla slutpunkter eftersom samma port används för avsökningen. Du kan också konfigurera en annan port för avsökning. Möjliga värden sträcker sig från 1 till 65535, inklusive. Standardvärdet som anges av slutpunkten. |
intervalInSeconds |
integer |
Valfritt. Intervallet, i sekunder, för hur ofta slutpunkten ska avsökas för hälsostatus. Vanligtvis är intervallet något mindre än hälften av den allokerade tidsgränsperioden (i sekunder) som tillåter två fullständiga avsökningar innan instansen tas ur rotation. Standardvärdet är 15. Minimivärdet är 5. |
timeoutInSeconds |
integer |
Valfritt. Tidsgränsperioden, i sekunder, tillämpas på avsökningen där inget svar resulterar i att ytterligare trafik stoppas från att levereras till slutpunkten. Det här värdet gör att slutpunkter kan tas ur rotation snabbare eller långsammare än de vanliga tiderna som används i Azure (som är standardvärdena). Standardvärdet är 31. Minimivärdet är 11. |