Schemat loadBalancerProbe definicji platformy Azure Cloud Services (wersja klasyczna)

Ważne

Cloud Services (wersja klasyczna) jest teraz przestarzała dla nowych klientów i zostanie wycofana 31 sierpnia 2024 r. dla wszystkich klientów. Nowe wdrożenia powinny korzystać z nowego modelu wdrażania opartego na usłudze Azure Resource Manager Azure Cloud Services (rozszerzona obsługa)."

Sonda modułu równoważenia obciążenia to sonda kondycji zdefiniowana przez klienta punktów końcowych i punktów końcowych UDP w wystąpieniach ról. Element LoadBalancerProbe nie jest autonomicznym elementem. Jest on połączony z rolą internetową lub rolą procesu roboczego w pliku definicji usługi. Może LoadBalancerProbe być używana przez więcej niż jedną rolę.

Domyślnym rozszerzeniem pliku definicji usługi jest .csdef.

Funkcja sondy modułu równoważenia obciążenia

Azure Load Balancer jest odpowiedzialny za kierowanie ruchu przychodzącego do wystąpień ról. Moduł równoważenia obciążenia określa, które wystąpienia mogą odbierać ruch, regularnie sondując każde wystąpienie w celu określenia kondycji tego wystąpienia. Sondy modułu równoważenia obciążenia są wykonywane wiele razy na minutę. Istnieją dwie różne opcje zapewnienia kondycji wystąpienia modułu równoważenia obciążenia — domyślna sonda modułu równoważenia obciążenia lub niestandardowa sonda modułu równoważenia obciążenia, która jest implementowana przez zdefiniowanie modułu LoadBalancerProbe w pliku csdef.

Domyślna sonda modułu równoważenia obciążenia korzysta z agenta gościa wewnątrz maszyny wirtualnej, która nasłuchuje i odpowiada za pomocą odpowiedzi HTTP 200 OK tylko wtedy, gdy wystąpienie jest w stanie Gotowe (na przykład gdy wystąpienie nie znajduje się w stanie Zajęty, Recykling, Zatrzymywanie itp.). Jeśli agent gościa nie odpowiada za pomocą protokołu HTTP 200 OK, Azure Load Balancer oznacza wystąpienie jako nieodpowiedzialne i przestaje wysyłać ruch do tego wystąpienia. Azure Load Balancer nadal wysyła polecenie ping do wystąpienia, a jeśli agent gościa odpowiada za pomocą protokołu HTTP 200, Azure Load Balancer ponownie wysyła ruch do tego wystąpienia. W przypadku korzystania z roli internetowej kod witryny internetowej jest zwykle uruchamiany w w3wp.exe, który nie jest monitorowany przez sieć szkieletową platformy Azure lub agenta gościa, co oznacza błędy w w3wp.exe (np. Odpowiedzi HTTP 500) nie są zgłaszane do agenta gościa, a moduł równoważenia obciążenia nie wie, aby zabrać to wystąpienie z rotacji.

Niestandardowa sonda modułu równoważenia obciążenia zastępuje domyślną sondę agenta gościa i umożliwia utworzenie własnej logiki niestandardowej w celu określenia kondycji wystąpienia roli. Moduł równoważenia obciążenia regularnie sonduje punkt końcowy (domyślnie co 15 sekund), a wystąpienie jest traktowane w rotacji, jeśli odpowiada za pomocą protokołu TCP ACK lub HTTP 200 w okresie przekroczenia limitu czasu (domyślnie 31 sekund). Może to być przydatne do zaimplementowania własnej logiki w celu usunięcia wystąpień z rotacji modułu równoważenia obciążenia, na przykład zwracając stan inny niż 200, jeśli wystąpienie jest powyżej 90% procesora CPU. W przypadku ról internetowych korzystających z w3wp.exe oznacza to również automatyczne monitorowanie witryny internetowej, ponieważ błędy w kodzie witryny internetowej zwracają stan inny niż 200 do sondy modułu równoważenia obciążenia. Jeśli nie zdefiniujesz elementu LoadBalancerProbe w pliku csdef, zostanie użyte domyślne zachowanie modułu równoważenia obciążenia (zgodnie z wcześniejszym opisem).

Jeśli używasz niestandardowej sondy modułu równoważenia obciążenia, upewnij się, że logika uwzględnia metodę RoleEnvironment.OnStop. W przypadku korzystania z domyślnej sondy modułu równoważenia obciążenia wystąpienie jest wyjęte z rotacji przed wywołaniem onStop, ale niestandardowa sonda modułu równoważenia obciążenia może nadal zwracać 200 OK podczas zdarzenia OnStop. Jeśli używasz zdarzenia OnStop do czyszczenia pamięci podręcznej, zatrzymywania usługi lub w inny sposób wprowadzania zmian, które mogą mieć wpływ na zachowanie środowiska uruchomieniowego usługi, musisz upewnić się, że niestandardowa logika sondy modułu równoważenia obciążenia usuwa wystąpienie z rotacji.

Podstawowy schemat definicji usługi dla sondy modułu równoważenia obciążenia

Podstawowy format pliku definicji usługi zawierającego sondę modułu równoważenia obciążenia jest następujący.

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

Elementy schematu

Element LoadBalancerProbes pliku definicji usługi zawiera następujące elementy:

LoadBalancerProbes, element

Element LoadBalancerProbes opisuje kolekcję sond modułu równoważenia obciążenia. Ten element jest elementem nadrzędnym elementu LoadBalancerProbe.

LoadBalancerProbe, element

Element LoadBalancerProbe definiuje sondę kondycji dla modelu. Można zdefiniować wiele sond modułu równoważenia obciążenia.

W poniższej tabeli opisano atrybuty LoadBalancerProbe elementu:

Atrybut Typ Opis
name string Wymagane. Nazwa sondy modułu równoważenia obciążenia. Nazwa musi być unikatowa.
protocol string Wymagane. Określa protokół punktu końcowego. Możliwe wartości to http lub tcp. Jeśli tcp zostanie określony, odebrana usługa ACK jest wymagana, aby sonda zakończyła się pomyślnie. Jeśli http zostanie określona, odpowiedź 200 OK z określonego identyfikatora URI jest wymagana, aby sonda zakończyła się pomyślnie.
path string Identyfikator URI używany do żądania stanu kondycji z maszyny wirtualnej. path jest wymagane, jeśli protocol ustawiono wartość http. W przeciwnym razie nie jest to dozwolone.

Nie ma żadnej wartości domyślnej.
port integer Opcjonalny. Port do komunikowania się z sondą. Jest to opcjonalne dla dowolnego punktu końcowego, co ten sam port będzie następnie używany dla sondy. Można również skonfigurować inny port na potrzeby sondowania. Możliwe wartości wahają się od 1 do 65535 włącznie.

Wartość domyślna jest ustawiana przez punkt końcowy.
intervalInSeconds integer Opcjonalny. Interwał, w sekundach, dla częstotliwości sondowania punktu końcowego pod kątem stanu kondycji. Zazwyczaj interwał jest nieco krótszy niż połowa przydzielonego okresu limitu czasu (w sekundach), co umożliwia wykonanie dwóch pełnych sond przed rozpoczęciem obrotu wystąpienia.

Wartość domyślna to 15, minimalna wartość to 5.
timeoutInSeconds integer Opcjonalny. Okres przekroczenia limitu czasu zastosowany w sekundach do sondy, w której żadna odpowiedź nie spowoduje zatrzymania dalszego ruchu z dostarczenia do punktu końcowego. Ta wartość umożliwia wyjęcie punktów końcowych z rotacji szybciej lub wolniej niż typowe czasy używane na platformie Azure (które są wartościami domyślnymi).

Wartość domyślna to 31, minimalna wartość to 11.

Zobacz też

Schemat definicji usługi w chmurze (klasyczny)