Schéma LoadBalancerProbe definice Azure Cloud Services (Classic)

Důležité

Cloud Services (classic) je teď pro nové zákazníky zastaralé a 31. srpna 2024 bude vyřazeno pro všechny zákazníky. Nová nasazení by měla používat nový model nasazení založený na Azure Resource Manager Azure Cloud Services (rozšířená podpora).

Sonda nástroje pro vyrovnávání zatížení je zákazníkem definovaná sonda stavu koncových bodů UDP a koncových bodů v instancích rolí. Objekt LoadBalancerProbe není samostatný prvek; je kombinován s webovou rolí nebo rolí pracovního procesu v definičním souboru služby. A LoadBalancerProbe může být používán více než jednou rolí.

Výchozí přípona souboru definice služby je .csdef.

Funkce sondy nástroje pro vyrovnávání zatížení

Azure Load Balancer zodpovídá za směrování příchozího provozu do instancí rolí. Nástroj pro vyrovnávání zatížení určuje, které instance můžou přijímat provoz, a to pravidelným sondováním každé instance, aby bylo možné určit stav této instance. Nástroj pro vyrovnávání zatížení testuje každou instanci několikrát za minutu. Existují dvě různé možnosti, jak poskytnout stav instance nástroji pro vyrovnávání zatížení – výchozí sondu nástroje pro vyrovnávání zatížení nebo vlastní sondu nástroje pro vyrovnávání zatížení, která se implementuje definováním LoadBalancerProbe v souboru .csdef.

Výchozí sonda nástroje pro vyrovnávání zatížení využívá agenta hosta ve virtuálním počítači, který naslouchá a reaguje odpovědí HTTP 200 OK pouze v případě, že je instance ve stavu Připraveno (například když instance není ve stavu Zaneprázdněn, Recyklace, Zastavování atd.). Pokud agent hosta nereaguje s HTTP 200 OK, Azure Load Balancer označí instanci jako nereagující a přestane do této instance odesílat provoz. Azure Load Balancer pokračuje v příkazu ping instance, a pokud agent hosta odpoví http 200, Azure Load Balancer odešle provoz do této instance znovu. Při použití webové role se kód vašeho webu obvykle spouští v w3wp.exe, který není monitorován prostředky infrastruktury Azure nebo agentem hosta, což znamená selhání v w3wp.exe (např. Odpovědi HTTP 500) se nehlásí agentu hosta a nástroj pro vyrovnávání zatížení neví, že má danou instanci vyvést z obměně.

Vlastní sonda nástroje pro vyrovnávání zatížení přepíše výchozí sondu agenta hosta a umožňuje vytvořit vlastní logiku pro určení stavu instance role. Nástroj pro vyrovnávání zatížení pravidelně testuje koncový bod (ve výchozím nastavení každých 15 sekund) a instance se považuje za obměnou, pokud během časového limitu odpoví protokolem TCP ACK nebo HTTP 200 (ve výchozím nastavení je to 31 sekund). To může být užitečné k implementaci vlastní logiky pro odebrání instancí z obměny nástroje pro vyrovnávání zatížení, například vrácení stavu ne 200, pokud je instance vyšší než 90 % procesoru. U webových rolí používajících w3wp.exe to také znamená, že získáte automatické monitorování webu, protože chyby v kódu webu vrátí sondě nástroje pro vyrovnávání zatížení stav, který není 200. Pokud v souboru .csdef nedefinujete LoadBalancerProbe, použije se výchozí chování nástroje pro vyrovnávání zatížení (jak bylo popsáno výše).

Pokud používáte vlastní sondu nástroje pro vyrovnávání zatížení, musíte zajistit, aby vaše logika zohlednila metodu RoleEnvironment.OnStop. Při použití výchozí sondy nástroje pro vyrovnávání zatížení je instance před zavoláním OnStop odebrána z obměny, ale vlastní sonda nástroje pro vyrovnávání zatížení může i nadále vracet 200 OK během události OnStop. Pokud událost OnStop používáte k vyčištění mezipaměti, zastavení služby nebo k jiným změnám, které můžou ovlivnit chování vaší služby za běhu, musíte zajistit, aby vlastní logika sondy nástroje pro vyrovnávání zatížení odebrala instanci z obměny.

Základní schéma definice služby pro sondu nástroje pro vyrovnávání zatížení

Základní formát definičního souboru služby obsahujícího sondu nástroje pro vyrovnávání zatížení je následující.

<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>

Prvky schématu

Element LoadBalancerProbes definičního souboru služby obsahuje následující prvky:

LoadBalancerProbes Element

Element LoadBalancerProbes popisuje kolekci sond nástroje pro vyrovnávání zatížení. Tento element je nadřazený prvek LoadBalancerProbe Element.

LoadBalancerProbe Element

Element LoadBalancerProbe definuje sondu stavu pro model. Můžete definovat několik sond nástroje pro vyrovnávání zatížení.

Následující tabulka popisuje atributy elementu LoadBalancerProbe :

Atribut Typ Popis
name string Povinná hodnota. Název sondy nástroje pro vyrovnávání zatížení. Název musí být jedinečný.
protocol string Povinná hodnota. Určuje protokol koncového bodu. Možné hodnoty jsou http nebo tcp. Pokud tcp je zadaný, aby byla sonda úspěšná, vyžaduje se přijatý ACK. Pokud http je zadána, aby byla sonda úspěšná, vyžaduje se odpověď 200 OK ze zadaného identifikátoru URI.
path string Identifikátor URI použitý k vyžádání stavu z virtuálního počítače. path je povinný, pokud protocol je nastavená hodnota http. Jinak to není povolené.

Není k dispozici žádná výchozí hodnota.
port integer Nepovinný parametr. Port pro komunikaci sondy. To je volitelné pro jakýkoli koncový bod, protože pro sondu se pak použije stejný port. Můžete také nakonfigurovat jiný port pro jejich sondování. Možné hodnoty jsou v rozsahu od 1 do 65535 (včetně).

Výchozí hodnotu nastaví koncový bod.
intervalInSeconds integer Nepovinný parametr. Interval (v sekundách) pro to, jak často se má koncový bod testovat z hlediska stavu. Interval je obvykle o něco menší než polovina přiděleného časového limitu (v sekundách), což umožňuje dvě úplné sondy před vyřazením instance z obměny.

Výchozí hodnota je 15, minimální hodnota je 5.
timeoutInSeconds integer Nepovinný parametr. Časový limit v sekundách se použije u sondy, kdy žádná odpověď způsobí zastavení dalšího provozu v doručení do koncového bodu. Tato hodnota umožňuje vyvést koncové body z obměny rychleji nebo pomaleji, než je obvyklé časy používané v Azure (což jsou výchozí hodnoty).

Výchozí hodnota je 31, minimální hodnota je 11.

Viz také

Schéma definice cloudové služby (Classic)