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.
Nem ajánlott az Azure Load Balancer állapotmintájának IP-címét vagy portjait NSG-szabályokkal blokkolni. Ez egy nem támogatott forgatókönyv, amely miatt az NSG-szabályok késleltetve lépnek érvénybe, ami azt eredményezi, hogy az állapotminták pontatlanul jelölik a háttérpéldányok rendelkezésre állását.
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 az Azure 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 (fe80::1234:5678:9abc) használnak. Kettős veremű Azure Load Balancer esetén konfigurálnia kell egy hálózati biztonsági csoportot az IPv6-állapotadat-mintavétel működéséhez.
Korlátozások
A HTTPS-mintavételek nem támogatják az ügyféltanúsítványokkal való kölcsönös hitelesítést.
A HTTP-mintavételek nem támogatják a gazdagépnevek használatát a háttérrendszerek mintavételéhez
A TCP-időbélyegek engedélyezése szabályozást vagy más teljesítményproblémákat okozhat, ami miatt az állapotminták időtúllépést okozhatnak.
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.