Dajbych.net


Koncové body clusteru Service Fabric a Azure Load Balancer

, 4 minuty čtení

service fabric logo

Přístup k externím prostředkům z clusteru Service Fabric je triviální, zatímco přístup ke clusteru z internetu vyžaduje určitou konfiguraci. Škálovací sada virtuálních počítačů, koncový bod služby a nástroj pro vyrovnávání zatížení přicházejí do hry. Na první pohled se to může zdát stejně složité jako skládání puzzle, ale pochopení mechanismů pod kapotou pomáhá uvědomit si, že celý proces je snadný.

Nastavení clusteru

Vytvoříme jednoduchou službu Service Fabric, která je dostupná z webového prohlížeče a hlásí nějaké informace o stavu svého výpočtu. K tomu je nutné vyplnit číslo portu 80 (což je port protokolu HTTP) v části custom endpoints konfigurace typu uzlu Service Fabric clusteru.

V tuto chvíli zvolíme Stateless Web API. (To nemusí být správná volba pro výpočetní službu, ale tento příklad se zaměřuje na sítě.) V řešení je mnoho konfiguračních XML souborů. Nejdůležitější z nich je (v této době) ServiceManifest.xml.

Neprovádějte žádné změny; Nejprve aplikaci naladíme a načteme adresu http://localhost:19080/. Zobrazí se průzkumník Service Fabric. Pak publikujte aplikaci do clusteru a otevřete adresu http://..cloudapp.azure.com:19080. Zobrazí se průzkumník Service Fabric. Jak odepřete přístup k tomuto administračnímu rozhraní všem?

Viditelnost služby Service Fabric Explorer

Ustanovení § Load balancer má nastavení nazvané Load balancing rules.

Existují dvě pravidla, která předávají porty TCP 19000 a 19080 všem uzlům typu uzlu Test. Pokud tato pravidla odstraníte, Service Fabric Explorer nebude přístupný z internetu. To ale také znamená, že Azure Portal nebude moci zobrazit stav clusteru.

To znamená, že pokud chcete mít přehled o svém clusteru prostřednictvím webu Azure Portal, musí váš nástroj pro vyrovnávání zatížení zveřejnit veřejnou IP adresu a vaše skupina zabezpečení sítě musí povolit příchozí provoz na portu 19080. Jedná se o dočasné omezení. Konfigurace veřejně nepřístupného clusteru bez ztráty funkcionality manažerského portálu bude možná v následujících měsících.

Zdravotní sondy a pravidla vyvažování zátěže

Následující obrázek popisuje síťové schéma clusteru.

Cluster obsahuje pouze jeden typ uzlu (označovaný jako Test). Každý typ uzlu je v podstatě samostatná škálovací sada virtuálních počítačů. Nástroj pro vyrovnávání zatížení rozděluje provoz do konkrétních instancí uzlů v souladu s algoritmem kruhového dotazování. Když uzel nebo aplikace přestanou být v pořádku, nástroj pro vyrovnávání zatížení tam přestane odesílat provoz. Nástroj pro vyrovnávání zatížení využívá ustanovení § health probes. Sondy stavu aktivně kontrolují jednotlivé koncové body a informují nástroj pro vyrovnávání zatížení o dostupných koncových bodech, které jsou v pořádku. Pokud nejsou všechny instance v pořádku, vyprší časový limit připojení. To je důvod, proč nestačí správně nastavit všechny koncové body; Všechny sondy musí být také nastaveny a spuštěny.

Nejprve vyhledejte soubor ServiceManifest.xml ve složce PackageRoot v projektu WebApi1 a vyhledejte koncový bod služby (ServiceManifest / Resources / Endpoints). Zde je číslo portu protokolu HTTP, které je v tomto případě 8210.

Za druhé nakonfigurujte nástroj pro vyrovnávání zatížení v clusteru Service Fabric. Z panelu clusteru je nedostupný. Musíte vypsat všechny prostředky ve skupině prostředků a najít tam nástroj pro vyrovnávání zatížení. Na panelu nástroje pro vyrovnávání zatížení vyberte možnost Health probes a nakonfigurujte sondu AppPortProbe1. Nastavte protokol na HTTP, změňte port na číslo uvedené v souboru ServiceManifest.xml a nastavte správnou cestu. path je adresa URL, která je volána sondou. Pokud vaše aplikace odpoví stavovým kódem HTTP 404 na požadavek sondy, bude aplikace považována za nezdravou bez ohledu na její skutečný stav. Nakonec klikněte na Save.

Za třetí, na panelu nástroje pro vyrovnávání zatížení vyberte Load balancing rules a nakonfigurujte pravidlo AppPortLBRule1. Změňte back-endový port na číslo uvedené v souboru ServiceManifest.xml a klikněte na Save.

Nakonec v prohlížeči otevřete adresu URL vašeho clusteru Service Fabric (http://<name>.<region>.cloudapp.azure.com/api/values). Prostřednictvím nástroje pro vyrovnávání zatížení budete připojeni k jedné ze tří instancí vaší WebAPI1 služby. Služba odpoví podle logiky zakódované ve třídě ValuesController.

Cesta volaná sondou nástroje pro vyrovnávání zatížení by neměla odpovídat žádnými daty, ale měla by vracet pouze stavový kód úspěchu nebo chyby. Interval sondy musí být krátký, aby nástroj pro vyrovnávání zatížení mohl rychle reagovat na selhání aplikace. Aplikace nemůže být zatěžována pouze voláním sondy.

Tento článek se zabývá nastavením nástroje pro vyrovnávání zatížení pro bezstavovou spolehlivou službu rozdělenou na oddíly jako jednoúčelová (jedna primární replika). Rozdělené nebo replikované služby se spoléhají na Service Fabric Naming Service. Tomuto tématu se budeme věnovat v jiném článku.