Azure Load Balancer állapottesztjei

Az Azure Load Balancer állapottesztje egy olyan funkció, amely észleli az alkalmazáspéldányok állapotát. Kérést küld a példányoknak annak ellenőrzésére, hogy elérhetők-e, és válaszolnak-e a kérésekre. Az állapotadat-mintavétel különböző protokollok, például TCP, HTTP vagy HTTPS használatára konfigurálható. Ez egy fontos funkció, mert segít észlelni az alkalmazáshibákat, kezelni a terhelést, és megtervezni az állásidőt.

Az Azure Load Balancer-szabályokhoz állapotadat-mintavétel szükséges a végpont állapotának észleléséhez. Az állapotadat-mintavétel és a mintavételi válaszok konfigurációja határozza meg, hogy mely háttérkészletpéldányok kapnak új kapcsolatokat. Állapotadat-mintavételek használatával észleli az alkalmazás meghibásodását. Egyéni válasz létrehozása állapotadat-mintavételre. Az állapotadat-mintavétel használatával kezelheti a terhelést vagy a tervezett állásidőt. Ha egy állapotadat-mintavétel meghiúsul, a terheléselosztó nem küld új kapcsolatokat a megfelelő nem kifogástalan példánynak. A kimenő kapcsolatokra nincs hatással, csak a bejövő kapcsolatokra.

Mintavételi protokollok

Az állapottesztek több protokollt is támogatnak. Egy adott állapotadat-mintavételi protokoll elérhetősége a Load Balancer termékváltozatától függően változik. Emellett a szolgáltatás viselkedése a Load Balancer termékváltozata szerint változik, ahogyan az ebben a táblázatban látható:

Standard termékváltozat Alapszintű termékváltozat
Mintavételi protokoll TCP, HTTP, HTTPS TCP, HTTP
Mintavétel leállási viselkedése Minden mintavétel leállt, az összes TCP-folyamat folytatódik. Minden mintavétel leállt, az összes TCP-folyamat lejár.

Mintavétel tulajdonságai

Az állapotadat-mintavételek a következő tulajdonságokkal rendelkeznek:

Állapotminta tulajdonság neve Részletek
Név Az állapotadat-mintavétel neve. Ezt a nevet kell definiálnia az állapotadat-mintavételhez
Protokoll Állapotadat-mintavétel protokollja. Ezt a protokolltípust szeretné használni az állapotadat-mintavételhez. A lehetőségek a következők: TCP, HTTP, HTTPS
Kikötő Az állapotadat-mintavétel portja. A célport, amelyet az állapotadat-mintavétel használni szeretne, amikor csatlakozik a virtuális géphez annak állapotának ellenőrzéséhez
Intervallum (másodperc) Állapotadat-mintavétel időköze. A virtuális gépre irányuló két egymást követő állapot-ellenőrzési kísérlet különböző mintavételei közötti idő (másodpercben)
Mi használja? Az adott állapotmintát használó terheléselosztó-szabályok listája. Legalább egy olyan szabályt kell használnia, amely az állapotadat-mintavételt használja a hatékony használathoz

Mintavétel konfigurálása

Az állapotadat-mintavétel konfigurációja a következő elemekből áll:

Állapotadat-mintavétel konfigurálása Részletek
Protokoll Állapotadat-mintavétel protokollja. Ezt a protokolltípust szeretné használni az állapotadat-mintavételhez. Az elérhető lehetőségek a következők: TCP, HTTP, HTTPS
Kikötő Az állapotadat-mintavétel portja. A célport, amelyet az állapotadat-mintavétel használni szeretne, amikor csatlakozik a virtuális géphez a virtuális gép állapotának ellenőrzéséhez. Győződjön meg arról, hogy a virtuális gép is figyel ezen a porton (vagyis a port nyitva van).
Intervallum Állapotadat-mintavétel időköze. A virtuális gépre irányuló egymást követő állapot-ellenőrzési kísérletek közötti idő (másodpercben)

Mintavételi protokoll

Az állapotadat-mintavétel által használt protokoll a következő lehetőségek egyikére konfigurálható: TCP, HTTP, HTTPS.

Eset TCP-mintavétel HTTP/HTTPS-mintavétel
Áttekintés A TCP-tesztek egy háromirányú nyitott TCP-kézfogással kezdeményeznek kapcsolatot a megadott porttal. A TCP-mintavételek négyirányú szoros TCP-kézfogással szüntetik meg a kapcsolatot. A HTTP és a HTTPS http GET-t ad ki a megadott elérési úttal. Mindkét mintavétel támogatja a HTTP GET relatív elérési útját. A HTTPS-mintavételek megegyeznek a HTTP-mintavételekkel a Transport Layer Security (TLS) hozzáadásával. A HTTP/HTTPS-mintavételek hasznosak lehetnek a saját logikájának implementálásához a példányok terheléselosztóból való eltávolításához, ha a mintavételi port a szolgáltatás figyelője is.
Mintavételi hibák viselkedése A TCP-mintavétel meghiúsul, ha: 1. A példány TCP-figyelője egyáltalán nem válaszol az időtúllépési időszakban. A mintavétel le van jelölve az időtúllépéses mintavételi kérelmek száma alapján, amelyek úgy lettek konfigurálva, hogy a mintavétel megjelölése előtt megválaszolatlan legyen. 2. A mintavétel tcp-alaphelyzetbe állítást kap a példánytól. A HTTP/HTTPS-mintavétel meghiúsul, ha: 1. A mintavételi végpont egy 200-nál nem régebbi HTTP-válaszkódot ad vissza (például 403, 404 vagy 500). 2. A mintavételi végpont egyáltalán nem válaszol a mintavételi időköz és a 30 másodperces időtúllépési időszak alatt. Előfordulhat, hogy több mintavételi kérelem nem lesz megválaszolva, mielőtt a mintavétel nem futóként lesz megjelölve, és amíg el nem éri az összes időtúllépési időköz összegét. 3. A mintavételi végpont TCP-alaphelyzetbe állítással zárja be a kapcsolatot.
Mintavételi viselkedés A TCP-állapotminták kifogástalannak minősülnek, és a háttérvégpontot kifogástalanként jelölik meg, ha: 1. Az állapotadat-mintavétel a virtuális gép indítása után egyszer sikeres. 2. Minden olyan háttérvégpont, amely kifogástalan állapotot ért el, jogosult új folyamatok fogadására. Az állapotadat-mintavétel akkor lesz megjelölve, ha a példány 200-ás HTTP-állapottal válaszol az időtúllépési időszakon belül. A HTTP/HTTPS állapotmintái kifogástalannak minősülnek, és a háttérvégpontot kifogástalanként jelölik meg, ha: 1. Az állapotadat-mintavétel a virtuális gép indítása után egyszer sikeres. 2. Minden olyan háttérvégpont, amely kifogástalan állapotot ért el, jogosult új folyamatok fogadására.

Feljegyzés

A HTTPS-mintavételhez olyan tanúsítványokra van szükség, amelyek minimális sha256-kivonattal rendelkeznek a teljes láncban.

Mintavétel leállási viselkedése

Eset TCP-kapcsolatok UDP-datagramok
Egypéldányos mintavételek leállnak Az új TCP-kapcsolatok továbbra is kifogástalan háttérvégpontként maradnak. A háttérvégponthoz létesített TCP-kapcsolatok folytatódnak. A meglévő UDP-folyamatok átkerülnek egy másik kifogástalan állapotú példányra a háttérkészletben.
Minden példány mintavétele leállt A rendszer nem küld új folyamatokat a háttérkészletnek. A Standard Load Balancer lehetővé teszi a létrehozott TCP-folyamatok folytatását, mivel egy háttérkészlet több háttérpéldánysal rendelkezik. Az alapszintű Load Balancer leállítja az összes meglévő TCP-folyamatot a háttérkészletbe. Az összes meglévő UDP-folyamat leáll.

Mintavételi időköz és időtúllépés

Az intervallumérték határozza meg, hogy az állapotadat-mintavétel milyen gyakran keres választ a háttérkészlet példányaitól. Ha az állapotadat-mintavétel sikertelen, a háttérkészlet példányai azonnal nem megfelelő állapotúként lesznek megjelölve. Ha az állapotadat-mintavétel sikeres a következő kifogástalan állapotú mintavételen, az Azure Load Balancer kifogástalan állapotúként jelöli meg a háttérkészlet-példányokat. Az állapotadat-mintavétel alapértelmezés szerint 5 másodpercenként megkísérli ellenőrizni a konfigurált állapotadat-mintavételi portot, de explicit módon másik értékre állítható be.

A HTTP/S állapotmintái beépített időtúllépésekkel rendelkeznek annak érdekében, hogy időben megkapják a választ. A TCP- és HTTP/S-mintavételek időtúllépési időtartama a következő:

  • TCP-mintavétel időtúllépési időtartama: N/A (a mintavételek sikertelenek lesznek, ha a konfigurált mintavételi időköz időtartama lejárt, és a következő mintavétel el lett küldve)
  • HTTP/S mintavétel időtúllépési időtartama: 30 másodperc

HTTP/S mintavételek esetén, ha a konfigurált időköz hosszabb, mint a fenti időtúllépési időszak, az állapotadat-mintavétel időtúllépést fog végrehajtani, és sikertelen lesz, ha az időtúllépési időszak alatt nem érkezik válasz. Ha például egy HTTP-állapotadat-mintavétel 120 másodperces mintavételi időközzel van konfigurálva (2 percenként), és az első 30 másodpercen belül nem érkezik mintavételi válasz, a mintavétel elérte az időtúllépési időtartamot, és sikertelen lesz.

Tervezési útmutató

  • Az alkalmazás állapotmodelljének tervezésekor mintavételezzen egy portot egy háttérvégponton, amely tükrözi a példány és az alkalmazásszolgáltatás állapotát. Az alkalmazásportnak és a mintavételi portnak nem kell azonosnak lennie. Bizonyos esetekben kívánatos lehet, hogy a mintavételi port eltérjen az alkalmazás által használt porttól, de általában ajánlott, hogy ezek ugyanazok a portok.

  • Hasznos lehet, ha az alkalmazás állapotadat-mintavételi választ hoz létre, és jelzi a terheléselosztónak, hogy a példánynak új kapcsolatokat kell-e kapnia. Az állapotadat-mintavétel sikertelenségével módosíthatja a mintavételi választ az új kapcsolatok példányhoz való továbbításának szabályozására. Felkészülhet az alkalmazás karbantartására, és kezdeményezheti az alkalmazás kapcsolatainak kiürítését. A mintavételes lejelzések mindig engedélyezik a TCP-folyamatok folytatását, amíg az üresjárati időtúllépés vagy a kapcsolat be nem zár egy Standard Load Balancerben.

  • UDP terheléselosztású alkalmazások esetén hozzon létre egy egyéni állapotadat-mintavételi jelet a háttérvégpontról. A megfelelő figyelőnek megfelelő állapotadat-mintavételhez használjon TCP, HTTP vagy HTTPS protokollt.

  • HA Portok terheléselosztási szabálya a Standard Load Balancerrel. Minden port terheléselosztással rendelkezik, és egyetlen állapotadat-mintavételi válasznak a teljes példány állapotát kell tükröznie.

  • Ne fordíts le vagy proxyzzon állapotmintát azon a példányon keresztül, amely az állapotmintát a virtuális hálózat egy másik példányára fogadja. Ez a konfiguráció hibákhoz vezethet a forgatókönyvben. Például: A terheléselosztó háttérkészletében külső berendezéseket helyeznek üzembe, hogy skálázást és redundanciát biztosítsanak a berendezések számára. Az állapotadat-mintavétel egy port mintavételére van konfigurálva, amelyet a külső berendezés proxyz vagy fordít le a berendezés mögötti más virtuális gépekre. Ha ugyanazt a portot mintavételezi, amelyet a berendezés mögötti többi virtuális gépre irányuló fordításhoz vagy proxykhoz használ, az egyetlen virtuális gépről érkező mintavételi válasz jelzi a berendezést. Ez a konfiguráció az alkalmazás kaszkádolt meghibásodásához vezethet. Az eseményindító időszakos mintavételi hiba lehet, amely miatt a terheléselosztó megjelöli a berendezéspéldányt. Ez a művelet letilthatja az alkalmazást. Maga a berendezés állapotának mintavétele. Az állapotjel meghatározására szolgáló mintavétel kiválasztása fontos szempont a hálózati virtuális berendezések (NVA) esetében. Kérje meg az alkalmazás gyártóját, hogy a megfelelő állapotjelzést adja meg az ilyen helyzetekhez.

  • Ha több adapter van konfigurálva a virtuális gépen, győződjön meg arról, hogy válaszol a mintavételre azon a felületen, amelyen megkapta. Előfordulhat, hogy ezt a címet interfészenként kell lefordítania a virtuális gépen.

  • Vegye figyelembe, hogy az Azure PowerShell, az Azure CLI, a sablonok vagy az API használatakor a mintavételdefiníció nem kötelező vagy nincs bejelölve. A mintavételes ellenőrzési tesztek csak az Azure Portal használatakor végezhetők el.

  • Ha az állapotadat-mintavétel ingadozik, a terheléselosztó tovább vár, mielőtt visszaállítja a háttérvégpont kifogástalan állapotát. Ez az extra várakozási idő védi a felhasználót és az infrastruktúrát, és szándékos szabályzat.

  • Győződjön meg arról, hogy a virtuálisgép-példányok futnak. A háttérkészlet minden futó példánya esetében az állapotadat-mintavétel ellenőrzi a rendelkezésre állást. Ha egy példány le van állítva, a rendszer csak az újrakezdésig ellenőrzi a példányt.

  • Ne konfigurálja a virtuális hálózatot a Microsoft tulajdonában lévő, 168.63.129.16-os IP-címtartománysal. A konfiguráció ütközik az állapotadat-mintavétel IP-címével, és a forgatókönyv meghiúsulását okozhatja.

  • Az állapotadat-mintavételi hiba teszteléséhez vagy az egyes példányok megjelöléséhez használjon egy hálózati biztonsági csoportot az állapotadat-mintavétel explicit letiltásához. Hozzon létre egy NSG-szabályt a célport vagy a forrás IP-cím letiltásához a mintavétel meghibásodásának szimulálásához.

  • A terheléselosztási szabályokkal ellentétben a bejövő NAT-szabályokhoz nincs szükség állapotmintára.

Figyelés

A Standard Load Balancer végpontonként és háttérbeli végpontállapot-mintavételi állapotot tesz elérhetővé az Azure Monitoron keresztül. Más Azure-szolgáltatások vagy partneralkalmazások is felhasználhatják ezeket a metrikákat. Az Azure Monitor-naplók nem támogatottak az alapszintű Load Balancer esetében.

Mintavételi forrás IP-címe

Ahhoz, hogy a Load Balancer állapotadat-mintavétele megjelölje a példányt, engedélyeznie kell a 168.63.129.16 IP-címet bármely Azure-beli hálózati biztonsági csoportban és helyi tűzfalszabályzatban. Az AzureLoadBalancer szolgáltatáscímke azonosítja ezt a forrás IP-címet a hálózati biztonsági csoportokban , és alapértelmezés szerint engedélyezi az állapotadat-mintavétel forgalmát. További információt erről az IP-ről itt talál.

Ha nem engedélyezi a mintavétel forrás IP-címét a tűzfalszabályzatokban, az állapotadat-mintavétel meghiúsul, mivel nem éri el a példányt. Az Azure Load Balancer viszont az állapotadat-mintavétel hibája miatt leálltként jelöli meg a példányt. Ez a helytelen konfiguráció a terheléselosztási alkalmazás forgatókönyvének meghiúsulását okozhatja. Minden IPv4 Load Balancer-állapotadat-mintavétel forrása a 168.63.129.16 IP-cím. Az IPv6-mintavételek forrásként egy helyi hivatkozáscímet használnak.

Korlátozások

  • A HTTPS-mintavételek nem támogatják az ügyféltanúsítványok kölcsönös hitelesítését.

  • Feltételezheti, hogy az állapotadat-mintavételek meghiúsulnak, ha a TCP-időbélyegek engedélyezve vannak.

  • Az alapszintű termékváltozatú terheléselosztó állapotmintája nem támogatott virtuálisgép-méretezési csoporttal.

  • A HTTP-mintavételek biztonsági problémák miatt nem támogatják a következő portokon való szondázást: 19, 21, 25, 70, 110, 119, 143, 220, 993.

Következő lépések