Doporučený přehled řešení s vysokou dostupností aktivní-aktivní pro Službu Azure Kubernetes Service (AKS)
Když vytvoříte aplikaci ve službě Azure Kubernetes Service (AKS) a během vytváření prostředků zvolíte oblast Azure, jedná se o aplikaci s jednou oblastí. V případě havárie, která způsobí nedostupnost oblasti, přestane být vaše aplikace dostupná. Pokud vytvoříte stejné nasazení v sekundární oblasti Azure, bude vaše aplikace méně náchylná k havárii v jedné oblasti, která zaručuje kontinuitu podnikových procesů a veškerá replikace dat napříč oblastmi vám umožní obnovit poslední stav aplikace.
Přestože existuje několik vzorů, které můžou poskytovat obnovitelnost řešení AKS, tato příručka popisuje doporučené řešení s vysokou dostupností aktivní-aktivní pro AKS. V rámci tohoto řešení nasadíme dva nezávislé a identické clustery AKS do dvou spárovaných oblastí Azure s oběma clustery, které aktivně obsluhují provoz.
Poznámka:
Následující případ použití lze v AKS považovat za standardní postup. Byla interně zkontrolována a prověřena ve spojení s našimi partnery Microsoftu.
Přehled řešení s vysokou dostupností aktivní-aktivní
Toto řešení spoléhá na dva identické clustery AKS nakonfigurované tak, aby aktivně obsluhovaly provoz. Před dva clustery umístíte globálního správce provozu, jako je Azure Front Door, a rozdělíte mezi ně provoz. Clustery musíte konzistentně nakonfigurovat tak, aby hostily instanci všech aplikací požadovaných pro fungování řešení.
Zóny dostupnosti jsou dalším způsobem, jak zajistit vysokou dostupnost a odolnost proti chybám pro cluster AKS ve stejné oblasti. Zóny dostupnosti umožňují distribuovat uzly clusteru napříč několika izolovanými umístěními v rámci oblasti Azure. Pokud dojde k výpadku jedné zóny kvůli výpadku napájení, selhání hardwaru nebo problému se sítí, může cluster dál spouštět a obsluhovat vaše aplikace. Zóny dostupnosti také zlepšují výkon a škálovatelnost clusteru snížením latence a kolizí mezi uzly. Pokud chcete nastavit zóny dostupnosti pro cluster AKS, musíte při vytváření nebo aktualizaci fondů uzlů zadat čísla zón. Další informace najdete v tématu Co jsou zóny dostupnosti Azure?
Poznámka:
Řada oblastí podporuje zóny dostupnosti. Zvažte použití oblastí se zónami dostupnosti, abyste zajistili větší odolnost a dostupnost vašich úloh. Další informace najdete v tématu Obnovení z přerušení služeb na úrovni celé oblasti.
Scénáře a konfigurace
Toto řešení je nejlepší implementovat při hostování bezstavových aplikací nebo s jinými technologiemi nasazenými také v obou oblastech, jako je horizontální škálování. Ve scénářích, kdy je hostovaná aplikace závislá na prostředcích, jako jsou databáze, které jsou aktivně v jedné oblasti, doporučujeme místo toho implementovat řešení aktivní-pasivní pro potenciální úspory nákladů, protože aktivní-pasivní má více výpadků než aktivní-aktivní-aktivní.
Komponenty
Řešení s vysokou dostupností aktivní-aktivní využívá mnoho služeb Azure. Tato část se věnuje pouze komponentám jedinečným pro tuto architekturu s více clustery. Další informace o zbývajících komponentách najdete v architektuře standardních hodnot AKS.
Více clusterů a oblastí: Nasadíte několik clusterů AKS, z nichž každý je v samostatné oblasti Azure. Během normálního provozu vaše konfigurace služby Azure Front Door směruje síťový provoz mezi všemi oblastmi. Pokud se jedna oblast stane nedostupnou, provoz se směruje do oblasti s nejrychlejším časem načítání uživatele.
Hvězdicová síť pro každou oblast: Pro každou místní instanci AKS se nasadí pár hvězdicové sítě. Zásady Azure Firewall Manageru spravují zásady brány firewall napříč všemi oblastmi.
Místní úložiště klíčů: V každé oblasti zřídíte službu Azure Key Vault pro ukládání citlivých hodnot a klíčů specifických pro instanci AKS a pro podporu služeb nalezených v této oblasti.
Azure Front Door: Vyrovnávání zatížení služby Azure Front Door a směruje provoz do místní instance brány Aplikace Azure lication, která se nachází před každým clusterem AKS. Azure Front Door umožňuje globální směrování vrstvy sedm .
Log Analytics: Místní instance Log Analytics ukládají metriky místních sítí a diagnostické protokoly. Sdílená instance ukládá metriky a diagnostické protokoly pro všechny instance AKS.
Container Registry: Image kontejneru pro úlohu se ukládají do spravovaného registru kontejneru. V tomto řešení se pro všechny instance Kubernetes v clusteru používá jedna instance služby Azure Container Registry . Geografická replikace služby Azure Container Registry umožňuje replikovat image do vybraných oblastí Azure a poskytuje nepřetržitý přístup k imagím, i když dojde k výpadku oblasti.
Proces převzetí služeb při selhání
Pokud se služba nebo součást služby stane nedostupnou v jedné oblasti, provoz by se měl směrovat do oblasti, ve které je tato služba dostupná. Architektura s více oblastmi zahrnuje mnoho různých bodů selhání. V této části se podíváme na potenciální body selhání.
Pody aplikací (regionální)
Objekt nasazení Kubernetes vytvoří více replik podu (ReplicaSet). Pokud není k dispozici, provoz se směruje mezi zbývajícími replikami. Sada replik Kubernetes se pokusí udržet zadaný počet replik v provozu. Pokud jedna instance přestane fungovat, měla by se znovu vytvořit nová instance. Sondy aktivity můžou zkontrolovat stav aplikace nebo procesu spuštěného v podu. Pokud pod nereaguje, sonda aktivity odebere pod, který vynutí repliku , aby vytvořila novou instanci.
Další informace najdete v tématu Kubernetes ReplicaSet.
Pody aplikací (globální)
Jakmile bude celá oblast nedostupná, pody v clusteru už nebudou k dispozici pro obsluhu požadavků. V tomto případě instance služby Azure Front Door směruje veškerý provoz do zbývajících oblastí stavu. Clustery a pody Kubernetes v těchto oblastech nadále obsluhují požadavky. Pokud chcete kompenzovat zvýšený provoz a požadavky na zbývající cluster, mějte na paměti následující pokyny:
- Ujistěte se, že jsou síťové a výpočetní prostředky správné velikosti, aby absorbovaly náhlé zvýšení provozu kvůli převzetí služeb při selhání oblasti. Pokud například používáte azure Container Network Interface (CNI), ujistěte se, že máte podsíť, která může podporovat všechny IP adresy podů se špičkou zatížení provozu.
- Pomocí horizontálního automatického škálování podů zvyšte počet replik podů, abyste kompenzovali zvýšenou regionální poptávku.
- Pomocí automatického škálování clusteru AKS zvyšte počet uzlů instance Kubernetes, abyste mohli kompenzovat zvýšenou regionální poptávku.
Fondy uzlů Kubernetes (regionální)
Občas může dojít k lokalizovaným selháním výpočetních prostředků, jako je nedostupnost napájení v jednom racku serverů Azure. Pokud chcete chránit uzly AKS před selháním v jedné oblasti, použijte Azure Zóny dostupnosti. Zóny dostupnosti zajišťují, aby uzly AKS v každé zóně dostupnosti byly fyzicky oddělené od uzlů definovaných v jiných zónách dostupnosti.
Fondy uzlů Kubernetes (globální)
V úplné regionální chybě Azure Front Door směruje provoz do zbývajících oblastí, které jsou v pořádku. Znovu nezapomeňte kompenzovat zvýšený provoz a požadavky na zbývající cluster.
Strategie testování převzetí služeb při selhání
I když v AKS nejsou v současné době k dispozici žádné mechanismy pro účely testování , azure Chaos Studio nabízí možnost vytvořit v clusteru experiment s chaosem.
Další kroky
Pokud zvažujete jiné řešení, přečtěte si následující články:
Azure Kubernetes Service