Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje podporu spolehlivosti ve službě Azure Container Instances, která poskytuje jednoduchý způsob spouštění kontejnerů Linuxu nebo Windows v Azure bez nutnosti spravovat virtuální počítače nebo využívat složitější službu vyšší úrovně.
Při používání Azure je spolehlivost sdílenou odpovědností. Microsoft nabízí celou řadu možností, které podporují odolnost a obnovení. Zodpovídáte za pochopení toho, jak tyto možnosti fungují ve všech službách, které používáte, a výběrem možností, které potřebujete ke splnění vašich obchodních cílů a cílů dostupnosti.
Tento článek popisuje, jak zajistit odolnost služby Azure Container Instances vůči nejrůznějším potenciálním výpadkům a problémům, včetně přechodných chyb, výpadků zón dostupnosti a výpadků oblastí. Zvýrazní některé klíčové informace o smlouvě o úrovni služeb (SLA) služby Azure Container Instances.
Doporučení pro produkční nasazení pro spolehlivost
Pokud chcete zvýšit spolehlivost produkčních aplikací založených na container Instances, doporučujeme provést následující akce:
- Spouštění aplikací napříč několika zónami dostupnosti
- Zvažte, jestli se mají také spouštět samostatné skupiny kontejnerů ve více oblastech.
- Pomocí sond živé aktivity můžete detekovat a automaticky restartovat kontejnery, které nejsou v pořádku.
- Pomocí testů připravenosti počkejte, až budou kontejnery připravené, než budou přijímat provoz.
- Pokud používáte NGroups, použijte postupné upgrady k postupnému použití změn. Tento přístup snižuje pravděpodobnost výpadku kvůli upgradům.
- Projděte si osvědčené postupy a aspekty služby Container Instances.
Přehled architektury spolehlivosti
Pokud chcete službu Container Instances použít, nasadíte skupinu kontejnerů. Skupina kontejnerů obsahuje jeden nebo více kontejnerů. Každý kontejner se vytvoří z image kontejneru, která je uložená v registru, jako je Azure Container Registry.
Všechny kontejnery ve skupině kontejnerů se nasadí společně jako jedna logická jednotka a sdílejí stejnou fyzickou infrastrukturu.
Následující diagram znázorňuje vztah mezi skupinami kontejnerů, kontejnery a obrazy.
Obrázek ukazuje dva kontejnery v sekci skupiny kontejnerů. Dvě tečkované čáry spojují kontejnery se dvěma sekcemi obrazů v sekci registru.
Služba Container Instances poskytuje následující funkce pro správu skupin kontejnerů:
NGroups (Preview) poskytuje sadu možností pro správu více souvisejících skupin kontejnerů. Při vytváření skupiny NGroup definujete počet skupin kontejnerů, které se mají vytvořit. Container Instances poskytuje funkce, jako jsou zavedení automatizovaného upgradu a šíření skupin kontejnerů napříč zónami dostupnosti.
Pohotovostní fondy vytvoří fond předem zřízených skupin kontejnerů, které lze použít v reakci na příchozí provoz. Pohotovostní fondy jsou navržené tak, aby optimalizovaly vytváření skupin kontejnerů a nejsou určené ke zvýšení odolnosti.
Odolnost proti přechodným chybám
Přechodné chyby jsou krátká, přerušovaná selhání ve složkách. V distribuovaném prostředí, jako je cloud, se vyskytují často a jsou normální součástí provozu. Přechodné chyby se opravují po krátké době. Je důležité, aby vaše aplikace mohly zpracovávat přechodné chyby, obvykle opakováním ovlivněných požadavků.
Všechny aplikace hostované v cloudu by měly při komunikaci se všemi cloudovými rozhraními API, databázemi a dalšími komponentami postupovat podle pokynů pro zpracování přechodných chyb Azure. Další informace najdete v tématu Doporučení pro zpracování přechodných chyb.
SDKs poskytnuté společností Microsoft obvykle zvládají přechodné chyby. Vzhledem k tomu, že hostujete vlastní aplikace ve službě Container Instances, proveďte kroky ke snížení pravděpodobnosti přechodných chyb:
Spusťte několik skupin kontejnerů pro důležité úlohy, abyste zajistili, že selhání v jednom kontejneru nebo skupině kontejnerů nemá vliv na celou aplikaci.
Sestavte kód aplikace tak, aby byl odolný vůči přechodným chybám ve službách, ke kterým se připojujete, například pomocí zásad opakování se strategiemi zpětného odvrácení.
Další informace o dalších chybách, ke kterým může dojít za běhu a jak na ně reagovat, najdete v tématu Problémy během modulu runtime skupiny kontejnerů.
Odolnost proti chybám zóny dostupnosti
Zóny dostupnosti jsou fyzicky oddělené skupiny datacenter v rámci oblasti Azure. Když jedna zóna selže, mohou služby přejít na jednu ze zbývajících zón.
Služba Container Instances podporuje zóny dostupnosti různými způsoby v závislosti na tom, jak nasadíte skupiny kontejnerů:
Ručně vytvořené skupiny kontejnerů: Jednotlivé skupiny kontejnerů jsou zónový prostředek, což znamená, že ji můžete nasadit do jedné zóny dostupnosti, kterou vyberete. Všechny kontejnery v rámci skupiny se nasadí do stejné zóny dostupnosti. Pokud má tato zóna dostupnosti výpadek, může dojít k výpadku skupiny kontejnerů a všech jejích kontejnerů.
Následující diagram znázorňuje skupinu kontejnerů, která byla ručně nasazena do zóny dostupnosti 1:
Na obrázku jsou tři zóny dostupnosti: Zóna dostupnosti 1, Zóna dostupnosti 2 a Zóna dostupnosti 3. Skupina kontejnerů v zóně dostupnosti 1 obsahuje dva kontejnery.
Poznámka:
Pokud chcete zajistit, aby vaše aplikace běžela, když dojde k výpadku jakékoli zóny v oblasti, doporučujeme vytvořit minimálně dvě skupiny kontejnerů ve dvou různých zónách dostupnosti.
Pokud neurčíte zóny dostupnosti, které se mají použít pro vaši skupinu kontejnerů, je to nezonální nebo oblast, což znamená, že se může umístit do jakékoli zóny dostupnosti v rámci oblasti nebo ve stejné zóně. Pokud má nějaká zóna dostupnosti v dané oblasti problém, může dojít k výpadku vaší skupiny kontejnerů.
NGroups: Když nasadíte skupinu NGroup, můžete zadat jednu nebo více zón, do které se má nasadit. Pokud nasadíte skupinu NGroup do dvou nebo více zón, jedná se o zónově redundantní skupinu NGroup a výpadek jedné zóny dostupnosti způsobí problémy pouze pro skupiny kontejnerů v rámci ovlivněné zóny.
Následující diagram znázorňuje skupinu NGroup nasazenou do tří zón dostupnosti:
Na obrázku jsou tři zóny dostupnosti. Každá zóna dostupnosti zahrnuje skupinu kontejnerů a dva kontejnery. Obdélník označený NGroupdesiredCount=3, zones=1,2,3 zahrnuje všechny tři zóny dostupnosti.
Pokud neurčíte zóny dostupnosti, které se mají použít pro skupinu NGroup, je to nezonální a může dojít k výpadkům, pokud má nějaká zóna dostupnosti v dané oblasti problém.
Pohotovostní fondy: Když nasadíte pohotovostní fond, můžete volitelně zadat jednu nebo více zón. Platforma může požadovat kontejnery napříč vybranými zónami.
Pohotovostní fondy ale nejsou zónově redundantní ani odolné vůči zóně, protože neexistuje žádná záruka, že se kontejnery vytvářejí ve více zónách. Pokud dojde k výpadku zóny, je možné, že všechny kontejnery ve fondu mohou být umístěny do ovlivněné zóny.
Vzhledem k tomu, že pohotovostní fondy nejsou navržené tak, aby podporovaly odolnost proti selháním zón, tento průvodce nepopisuje podrobné chování pohotovostních fondů se zónami dostupnosti.
Důležité
Pohotovostní zásobníky nejsou navržené tak, aby byly odolné vůči selhání zóny. Neměly by se používat pro úlohy, které vyžadují odolnost proti selháním zón.
Podpora oblastí
Nasazení zónových skupin kontejnerů se podporují ve všech oblastech se zónami dostupnosti.
Požadavky
Zónová nasazení jsou k dispozici pro skupiny kontejnerů s Linuxem a Windows Serverem 2019.
Pokud chcete vybrat zónu dostupnosti, musíte použít skladovou položku Standard. Skupiny zónových kontejnerů nejsou u skladové položky Důvěrné dostupné.
Úvahy
Spotové kontejnery nepodporují zóny dostupnosti a jsou vždy nezonální.
Náklady
Konfigurace zón dostupnosti pro skupinu kontejnerů nevyžaduje žádné další náklady.
Konfigurujte podporu zón dostupnosti
Vytvořte skupiny kontejnerů s podporou zóny dostupnosti. Přístup, který používáte ke konfiguraci zón dostupnosti, závisí na tom, jak vytváříte skupiny kontejnerů.
Ručně vytvořené skupiny kontejnerů: Pokud chcete vytvořit zónovou skupinu kontejnerů v konkrétní zóně, můžete použít jednu z následujících metod:
NGroups: Zónově redundantní skupinu NGroup můžete nasadit pomocí souboru Bicep nebo šablony ARM a zadáním více zón. Další informace najdete v tématu NGroups s ukázkou zón.
Pohotovostní fondy: Pohotovostní fond, který používá zóny dostupnosti, můžete nasadit zadáním jedné nebo více zón při vytváření nebo aktualizaci fondu. Kontejnery ale nemusí být vytvořeny ve více zónách. Pohotovostní fondy by se neměly používat pro úlohy, které vyžadují odolnost vůči selháním zón. Další informace najdete v tématu Vytvoření pohotovostního fondu pro službu Container Instances.
Povolte podporu zóny dostupnosti u existujících prostředků. Přístup, který používáte ke konfiguraci zón dostupnosti, závisí na tom, jak vytváříte skupiny kontejnerů.
Ručně vytvořené skupiny kontejnerů: U existující nezonální skupiny kontejnerů není možné povolit zóny dostupnosti. Skupinu kontejnerů musíte odstranit a vytvořit zónovou skupinu kontejnerů.
NGroups: U existující nezonální skupiny NGroup není možné povolit zóny dostupnosti. Skupinu NGroup musíte odstranit a vytvořit zónově redundantní skupinu NGroup.
Pohotovostní fondy: V existujícím nezonálním pohotovostním fondu nemůžete povolit zóny dostupnosti. Skupinu kontejnerů musíte odstranit a vytvořit nový pohotovostní fond, který používá více zón dostupnosti.
Přesuňte skupiny kontejnerů mezi zónami nebo zakažte podporu zóny dostupnosti. Přístup, který používáte k úpravě zón dostupnosti, závisí na tom, jak vytváříte skupiny kontejnerů.
Ručně vytvořené skupiny kontejnerů: Pokud chcete změnit zónu dostupnosti skupiny kontejnerů, musíte odstranit skupinu kontejnerů a vytvořit další skupinu kontejnerů s novou zónou dostupnosti. Informace o tom, jak odstranit skupinu kontejnerů, najdete v následujících zdrojích informací:
NGroups: Do skupiny NGroup můžete přidat zóny, ale zóny se nedají odebrat.
Pohotovostní fondy: Zóny můžete přidat do pohotovostního fondu, ale nemůžete odebrat zóny.
Distribuce skupin kontejnerů
Způsob distribuce skupin kontejnerů napříč zónami dostupnosti závisí na tom, jak nasadíte skupiny kontejnerů.
Ručně vytvořené skupiny kontejnerů: Zodpovídáte za distribuci ručně vytvořených skupin kontejnerů napříč několika zónami dostupnosti.
NGroups: Během operací zmenšování škály náhodně odstraní instance, které nemusí zůstat rozloženy v rámci zón dostupnosti. Operace horizontálního navýšení kapacity se snaží obnovit rovnováhu rozložení mezi zónami.
Pohotovostní fondy: Pohotovostní fond může vytvářet kontejnery v libovolné zóně dostupnosti, které nakonfigurujete ve fondu. Kontejnery ale nemusí být vytvořeny ve více zónách. Pohotovostní fondy by se neměly používat pro úlohy, které vyžadují odolnost vůči selháním zón.
Plánování a řízení kapacit
Pokud se chcete připravit na selhání zóny dostupnosti, zvažte přesycení kapacit počtu skupin kontejnerů, které nasadíte. Tento přístup umožňuje řešení tolerovat určitou ztrátu kapacity a nadále fungovat bez snížení výkonu. Další informace najdete v tématu Správa kapacity pomocí nadměrného zřízení.
Přístup, který používáte k nadměrnému zřízení skupin kontejnerů, závisí na způsobu nasazení skupin kontejnerů.
Ručně vytvořené skupiny kontejnerů: Zodpovídáte za plánování kapacity ručně vytvořených skupin kontejnerů, včetně plánování počtu skupin kontejnerů, které se mají v každé zóně nasadit.
NGroup: Zvažte překročení kapacity vaší skupiny NGroup, aby mohla utlumit vliv ztráty zóny.
Pohotovostní fondy: Pohotovostní fondy nejsou navržené tak, aby byly odolné vůči selháním zón. Zvažte použití více pohotovostních fondů v různých zónách nebo použití NGroups.
Chování, když jsou všechny zóny v pořádku
Tato část popisuje, co očekávat, když jsou prostředky služby Container Instances nakonfigurované pro podporu zóny dostupnosti a všechny zóny dostupnosti jsou funkční.
Směrování provozu mezi zónami: Zodpovídáte za směrování provozu do kontejnerů. Azure Application Gateway můžete například použít jako bránu a nástroj pro vyrovnávání zatížení pro skupiny kontejnerů.
Pokud používáte NGroups nebo pohotovostní fondy, zodpovídáte za vyrovnávání zatížení napříč každým kontejnerem. Musíte také nakonfigurovat systém směrování provozu tak, aby zjistil stav každé skupiny kontejnerů a v případě potřeby přesměrovává provoz do alternativní skupiny.
Replikace dat mezi zónami: Kontejnery a skupiny kontejnerů jsou bezstavové. Můžete připojit vlastní sdílenou složku nebo se připojit k databázím nebo jiným službám úložiště z vašich aplikací. Jste zodpovědní za zajištění, aby byly tyto sdílené složky a služby úložiště odolné vůči výpadkům zóny. Projděte si průvodce spolehlivostí jednotlivých služeb a zjistěte, jak zajistit odolnost jednotlivých zón komponent.
Chování při selhání zóny
Tato část popisuje, co očekávat, když jsou prostředky služby Container Instances nakonfigurované pro podporu zóny dostupnosti a dojde k výpadku zóny dostupnosti.
Detekce a odpověď: Odpovědnost za detekci selhání zóny a přidružená odpověď závisí na tom, jak nasazujete skupiny kontejnerů.
Ručně vytvořené skupiny kontejnerů: Potřebujete zjistit ztrátu zóny dostupnosti a zahájit převzetí služeb při selhání sekundární skupině kontejnerů, kterou vytvoříte v jiné zóně dostupnosti.
NGroups: Platforma Container Instances zodpovídá za detekci selhání v zóně dostupnosti a odpovídá na ně.
Avšak jste odpovědni za to, aby byl provoz směrován do kontejnerů ve funkční zóně.
Pohotovostní fondy: Platforma Container Instances nezaručuje reakci na selhání zón pro pohotovostní fondy. Pohotovostní fondy by se neměly používat pro úlohy, které vyžadují odolnost vůči selháním zón.
- Oznámení: Microsoft vás automaticky neoznámí, když je zóna mimo provoz. Azure Service Health ale můžete použít k pochopení celkového stavu služby, včetně jakýchkoli selhání zón, a můžete nastavit upozornění služby Service Health , která vás upozorní na problémy.
Aktivní požadavky: Pokud zóna selže, všechny kontejnery spuštěné v této zóně se pravděpodobně zastaví, včetně všech aktivních úloh, které zpracovávají.
Očekávaná ztráta dat: Vzhledem k tomu, že kontejnery a skupiny kontejnerů jsou bezstavové, neočekává se žádná ztráta dat při selhání zóny. Zodpovídáte ale za to, že každá komponenta ve vaší úloze je odolná vůči zónám, včetně služeb úložiště a databází.
Očekávaný výpadek: Výpadek, který můžete očekávat od selhání zóny, závisí na tom, jak nasadíte skupiny kontejnerů.
Ručně vytvořené skupiny kontejnerů: V případě zónových skupin kontejnerů, pokud je zóna nedostupná, vaše skupina kontejnerů a její kontejnery nejsou k dispozici, dokud se zóna dostupnosti neobnoví.
NGroups: V případě NGroups zůstane vaše aplikace dostupná, protože zbývající skupiny kontejnerů v rámci NGroups budou dál běžet v jiných zónách. Neočekává se žádný výpadek.
Pohotovostní fondy: Pohotovostní fondy neposkytují odolnost zón. Pokud jsou všechny skupiny kontejnerů v pohotovostním fondu v jedné zóně, je možné, že všechny skupiny kontejnerů a jejich kontejnery nebudou dostupné, dokud se zóna dostupnosti neobnoví.
Přesměrování provozu: Protože zodpovídáte za směrování provozu do kontejnerů, zodpovídáte také za přesměrování provozu, pokud skupina kontejnerů selže kvůli výpadku zóny dostupnosti.
Obnovení zóny
Po obnovení zóny platforma Azure automaticky restartuje skupiny kontejnerů, které se zastavily. Nevyžaduje se žádná akce zákazníka.
Testování poruch zón
Neexistuje způsob, jak simulovat výpadek zóny dostupnosti, která obsahuje vaši skupinu kontejnerů. Můžete ale ručně nakonfigurovat upstreamové brány nebo nástroje pro vyrovnávání zatížení pro přesměrování provozu do jiné skupiny kontejnerů v jiné zóně dostupnosti.
Odolnost proti selháním v celé oblasti
Container Instances je jednoregionová služba. Pokud se oblast stane nedostupnou, vaše skupiny kontejnerů a její kontejnery také nebudou k dispozici.
Vlastní řešení pro více regionů pro odolnost systémů
Volitelně můžete nasadit samostatné skupiny kontejnerů ve více oblastech. Zodpovídáte za nasazení a konfiguraci skupin kontejnerů v jednotlivých oblastech. Musíte také nakonfigurovat vyrovnávání zatížení pomocí služby, jako je Azure Traffic Manager nebo Azure Front Door. Zodpovídáte za veškerou synchronizaci dat, přepnutí a navrácení.
Smlouva o úrovni služeb
Smlouva o úrovni služeb (SLA) pro služby Azure popisuje očekávanou dostupnost každé služby a podmínky, které musí vaše řešení splnit, aby bylo dosaženo očekávané dostupnosti. Další informace najdete v tématu Smlouvy SLA pro online služby.