Sdílet prostřednictvím


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 umožnit obnovitelnost řešení AKS, tato příručka popisuje doporučené řešení s vysokou dostupností ve formě modelu aktiv-aktiv 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í aktivní-aktivní s vysokou dostupností

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í pouze v jedné oblasti, doporučujeme místo toho implementovat aktivně-pasivní řešení pro potenciální úspory nákladů, protože aktivní-pasivní má více výpadků než 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í.

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: Azure Front Door vyrovnává zatížení a směruje provoz do místní instance brány Azure Application Gateway, která se nachází před každým clusterem AKS. Azure Front Door umožňuje globální směrování sedmé vrstvy.

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í 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 sekci probereme potenciální body selhání.

Pody aplikací (regionální)

Objekt nasazení Kubernetes vytvoří více replik podu (ReplicaSet). Pokud jedna z replik není k dispozici, provoz se směruje mezi zbývajícími replikami. ReplicaSet Kubernetes se snaží 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, liveness probe odebere pod, což přinutí ReplicaSet vytvořit novou instanci.

Další informace najdete v tématu Kubernetes ReplicaSet.

Pody aplikací (globální)

Když je celá oblast nedostupná, pody v clusteru už nejsou dostupné pro obsluhu požadavků. V tomto případě instance služby Azure Front Door směruje veškerý provoz do zbývajících zdravých oblastí. Clustery a pody Kubernetes v těchto regionech 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ě dimenzované, aby absorbovaly náhlé zvýšení provozu kvůli přepnutí na oblastní zálohu. 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í Horizontal Pod Autoscaler 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.

Skupiny 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.

Shluky uzlů Kubernetes (Globální)

Při úplném selhání regionu Azure Front Door směruje provoz do zbývajících regionů, které jsou v pořádku. Znovu nezapomeňte kompenzovat zvýšený provoz a požadavky na zbývající cluster.

Strategie testování záložního režimu

I když v AKS v současné době nejsou k dispozici žádné mechanismy k vyřazení celé oblasti nasazení pro účely testování, Azure Chaos Studio nabízí možnost vytvořit na vašem clusteru experiment s chaosem.

Další kroky

Pokud zvažujete jiné řešení, přečtěte si následující články: