Přehled dobře architektuře Azure – Azure Kubernetes Service (AKS)
Tento článek obsahuje osvědčené postupy architektury pro službu Azure Kubernetes Service (AKS). Pokyny vycházejí z pěti pilířů efektivity architektury:
- Spolehlivost
- Zabezpečení
- Optimalizace nákladů
- Provozní dokonalost
- Efektivita výkonu
Předpokládáme, že rozumíte principům návrhu systému, získáte funkční znalosti o službě Azure Kubernetes Service a dobře znáte její funkce. Další informace najdete v tématu Azure Kubernetes Service.
Požadavky
Pochopení pilířů Dobře navržená architektura může pomoct vytvořit vysoce kvalitní, stabilní a efektivní cloudovou architekturu. Doporučujeme zkontrolovat úlohu pomocí posouzení posouzení architektury Azure Well-Architected Framework .
Pro kontext zvažte kontrolu referenční architektury, která odráží tyto aspekty v návrhu. Doporučujeme začít se základní architekturou pro cluster Azure Kubernetes Service (AKS) a architekturou mikroslužeb ve službě Azure Kubernetes Service. Projděte si také akcelerátor cílové zóny AKS, který poskytuje přístup k architektuře a referenční implementaci pro přípravu předplatných cílových zón pro škálovatelný cluster Azure Kubernetes Service (AKS).
Spolehlivost
V cloudu bereme na vědomí, že k selháním dochází. Místo snahy kompletně zabránit selháním je cílem minimalizace dopadu selhání jedné komponenty. Následující informace použijte k minimalizaci neúspěšných instancí.
Při diskusi o spolehlivosti se službou Azure Kubernetes Service je důležité rozlišovat mezi spolehlivostí clusteru a spolehlivostí úloh. Spolehlivost clusteru je sdílená odpovědnost mezi správcem clusteru a poskytovatelem prostředků, zatímco spolehlivost úloh je doménou vývojáře. Služba Azure Kubernetes Service má důležité informace a doporučení pro obě tyto role.
V kontrolním seznamu návrhu a v seznamu níže uvedených doporučení jsou popisky označeny, zda je každá volba použitelná pro architekturu clusteru, architekturu úloh nebo obojí.
Kontrolní seznam návrhu
- Architektura clusteru: Pro důležité úlohy používejte zóny dostupnosti pro clustery AKS.
- Architektura clusteru: Naplánujte adresní prostor IP adres, aby se zajistilo spolehlivé škálování clusteru, včetně zpracování provozu s podporou převzetí služeb při selhání v topologiích s více clustery.
- Architektura clusteru: Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a určete nejlepší strategii monitorování vašich úloh.
- Architektura úloh: Zajistěte, aby úlohy byly vytvořeny tak, aby podporovaly připravenost a stav aplikací horizontálního škálování a sestavy.
- Architektury clusteru a úloh: Ujistěte se, že vaše úloha běží ve fondech uzlů uživatelů, a zvolte skladovou položku správné velikosti. Minimálně zahrňte dva uzly pro fondy uzlů uživatelů a tři uzly pro fond systémových uzlů.
- Architektura clusteru: Použijte smlouvu SLA pro dobu provozu AKS ke splnění cílů dostupnosti pro produkční úlohy.
Doporučení pro konfiguraci AKS
Projděte si následující tabulku doporučení pro optimalizaci konfigurace AKS pro spolehlivost.
Doporučení | Výhoda |
---|---|
Architektury clusteru a úloh: Řízení plánování podů pomocí selektorů uzlů a spřažení | Umožňuje plánovači Kubernetes logicky izolovat úlohy podle hardwaru v uzlu. Na rozdíl od tolerance je možné pody bez odpovídajícího selektoru uzlů naplánovat na označených uzlech, což umožňuje využívat nepoužívané prostředky na uzlech, ale dává prioritu podům, které definují odpovídající selektor uzlů. Spřažení uzlů můžete použít pro větší flexibilitu, což vám umožní definovat, co se stane, když se pod nedá spárovat s uzlem. |
Architektura clusteru: Zajištění správného výběru síťového modulu plug-in na základě požadavků na síť a velikosti clusteru | Azure CNI se vyžaduje pro konkrétní scénáře, například fondy uzlů založené na Windows, specifické požadavky na síť a zásady sítě Kubernetes. Další informace najdete v článku Kubenet versus Azure CNI . |
Architektury clusterů a úloh: Pro clustery na produkční úrovni použijte smlouvu SLA pro dobu provozu AKS. | Smlouva SLA pro dobu provozu AKS zaručuje: - 99.95% dostupnost koncového bodu serveru rozhraní Kubernetes API pro clustery AKS, které používají Azure Zóny dostupnosti, nebo- 99.9% dostupnost pro clustery AKS, které nepoužívají Azure Zóny dostupnosti. |
Architektury clusterů a úloh: Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a určete nejlepší strategii monitorování vašich úloh. | – |
Architektura clusteru: Využijte zóny dostupnosti k maximalizaci odolnosti v rámci oblasti Azure tím, že distribuují uzly agenta AKS mezi fyzicky oddělená datová centra. | Rozprostřením fondů uzlů mezi více zón budou uzly v jednom fondu uzlů dál běžet i v případě, že došlo k výpadku jiné zóny. Pokud existují požadavky na kolokálnost, můžete k minimalizaci latence meziuzlu použít běžné nasazení AKS založené na škálovacích sadách virtuálních počítačů do jedné zóny nebo skupin umístění bezkontaktní komunikace. |
Architektura clusteru: Využijte strategii pro více oblastí nasazením clusterů AKS nasazených napříč různými oblastmi Azure, abyste maximalizovali dostupnost a zajistili provozní kontinuitu. | Internetové úlohy by měly využívat Azure Front Door nebo Azure Traffic Manager ke směrování provozu globálně napříč clustery AKS. |
Architektury clusteru a úloh: Definujte požadavky na prostředky podů a omezení v manifestech nasazení aplikací a vynucujte je pomocí služby Azure Policy. | Omezení prostředků procesoru kontejneru a paměti jsou nezbytná, aby se zabránilo vyčerpání prostředků v clusteru Kubernetes. |
Architektury clusteru a úloh: Udržujte fond systémových uzlů izolovaný od úloh aplikací. | Fondy systémových uzlů vyžadují skladovou položku virtuálního počítače minimálně 2 virtuálních procesorů a 4 GB paměti, ale doporučuje se 4 vCPU nebo více. Podrobné požadavky najdete v referenčních fondech systémových a uživatelských uzlů. |
Architektury clusterů a úloh: Oddělte aplikace od vyhrazených fondů uzlů na základě konkrétních požadavků. | Aplikace můžou sdílet stejnou konfiguraci a potřebují virtuální počítače s podporou GPU, procesor nebo paměť optimalizované pro virtuální počítače nebo možnost škálování na nulu. Vyhněte se velkému počtu fondů uzlů, abyste snížili režijní náklady na správu. |
Architektura clusteru: Pro clustery spouštějící úlohy, které provádějí mnoho souběžných odchozích připojení, použijte bránu NAT Gateway. | Abychom se vyhnuli problémům se spolehlivostí s omezeními Azure Load Balanceru s vysokým souběžným odchozím provozem, používáme místo toho službu NAT Gateway k podpoře spolehlivého odchozího provozu ve velkém měřítku. |
Další návrhy najdete v tématu Principy pilíře spolehlivosti.
Azure Policy
Azure Kubernetes Service nabízí širokou škálu předdefinovaných zásad Azure, které platí pro prostředky Azure, jako jsou typické zásady Azure, a použití doplňku Azure Policy pro Kubernetes i v rámci clusteru. Existuje mnoho klíčových zásad souvisejících s tímto pilířem, které jsou zde shrnuty. Podrobnější zobrazení najdete v předdefinovaných definicích zásad pro Kubernetes.
Architektura clusteru a úloh
- Clustery mají nakonfigurované testy stavu připravenosti nebo aktivity pro vaši specifikaci podu.
Kromě předdefinovaných definic Azure Policy je možné vytvořit vlastní zásady pro prostředek AKS i pro doplněk Azure Policy pro Kubernetes. To vám umožní přidat další omezení spolehlivosti, která chcete vynutit v clusteru a architektuře úloh.
Zabezpečení
Zabezpečení je nejdůležitějším aspektem jakékoli architektury. Pokud chcete zjistit, jak AKS může posílit zabezpečení úloh vaší aplikace, doporučujeme projít si principy návrhu zabezpečení. Pokud je potřeba cluster Azure Kubernetes Service navrhnout tak, aby spouštěl citlivou úlohu, která splňuje zákonné požadavky standardu PCI-DSS 3.2.1 (PCI-DSS 3.2.1), projděte si regulovaný cluster AKS pro PCI-DSS 3.2.1.
Další informace o podpoře a požadavcích na doD Impact Level 5 (IL5) v AKS najdete v požadavcích na izolaci v Azure Government IL5.
Při diskuzi o zabezpečení se službou Azure Kubernetes Service je důležité rozlišovat mezi zabezpečením clusteru a zabezpečením úloh. Zabezpečení clusteru je sdílená odpovědnost mezi správcem clusteru a jeho poskytovatelem prostředků, zatímco zabezpečení úloh je doménou vývojáře. Služba Azure Kubernetes Service má důležité informace a doporučení pro obě tyto role.
V kontrolním seznamu návrhu a v seznamu níže uvedených doporučení se uvádí, jestli je každá volba použitelná pro architekturu clusteru, architekturu úloh nebo obojí.
Kontrolní seznam návrhu
- Architektura clusteru: Použití spravovaných identit k zabránění správě a obměně principů služeb
- Architektura clusteru: Používejte řízení přístupu na základě role Kubernetes (RBAC) s ID Microsoft Entra pro přístup s nejnižšími oprávněními a minimalizujte udělení oprávnění správce pro ochranu konfigurace a přístupu k tajným kódům.
- Architektura clusteru: Použití Microsoft Defenderu pro kontejnery se službou Azure Sentinel k detekci a rychlé reakci na hrozby napříč clusterem a úlohami běžícími na nich.
- Architektura clusteru: Nasaďte privátní cluster AKS, abyste zajistili, že provoz správy clusteru na server rozhraní API zůstane ve vaší privátní síti. Nebo použijte seznam povolených serverů rozhraní API pro nesoukromého clusteru.
- Architektura úloh: K zabezpečení provozu HTTP(S) použijte firewall webových aplikací.
- Architektura úloh: Ujistěte se, že je váš kanál CI/CID posílený kontrolou s podporou kontejnerů.
Doporučení
Projděte si následující tabulku doporučení pro optimalizaci konfigurace AKS pro zabezpečení.
Doporučení | Výhoda |
---|---|
Architektura clusteru: Použití integrace Microsoft Entra | Použití Microsoft Entra ID centralizuje komponentu správy identit. Jakákoli změna uživatelského účtu nebo stavu skupiny se automaticky aktualizuje v přístupu ke clusteru AKS. Vývojáři a vlastníci aplikací vašeho clusteru Kubernetes potřebují přístup k různým prostředkům. |
Architektura clusteru: Ověřování pomocí ID Microsoft Entra ve službě Azure Container Registry | AKS a Microsoft Entra ID umožňují ověřování pomocí služby Azure Container Registry bez použití tajných kódů imagePullSecrets . Další informace najdete v tématu Ověřování pomocí služby Azure Container Registry ze služby Azure Kubernetes Service . |
Architektura clusteru: Zabezpečení síťového provozu na server rozhraní API pomocí privátního clusteru AKS | Ve výchozím nastavení síťový provoz mezi fondy uzlů a serverem rozhraní API prochází páteřní síť Microsoftu; pomocí privátního clusteru můžete zajistit, aby síťový provoz na server rozhraní API zůstal pouze v privátní síti. |
Architektura clusteru: V případě nesoukromého clusteru AKS použijte rozsahy IP adres autorizovaných serverem API. | Pokud používáte veřejné clustery, můžete dál omezit provoz, který se může spojit se serverem rozhraní API clusterů pomocí funkce autorizovaného rozsahu IP adres. Uveďte zdroje, jako jsou veřejné IP adresy agentů sestavení nasazení, provozní správa a výstupní bod fondů uzlů (například Azure Firewall). |
Architektura clusteru: Chraňte server rozhraní API pomocí Microsoft Entra RBAC. | Zabezpečení přístupu k serveru rozhraní API Kubernetes je jednou z nejdůležitějších věcí, které můžete udělat pro zabezpečení clusteru. Integrujte řízení přístupu na základě role Kubernetes (RBAC) s ID Microsoft Entra, abyste mohli řídit přístup k serveru rozhraní API. Zakažte místní účty a vynucujte veškerý přístup ke clusteru pomocí identit založených na ID Microsoft Entra. |
Architektura clusteru: Použijte zásady sítě Azure nebo Calico. | Zabezpečení a řízení síťového provozu mezi pody v clusteru |
Architektura clusteru: Zabezpečení clusterů a podů pomocí Azure Policy | Azure Policy vám může pomoct s uplatňováním vynucování ve velkém měřítku a zabezpečením v clusterech centralizovaným a konzistentním způsobem. Může také řídit, jaké pody funkcí se udělují, a pokud je něco spuštěné proti zásadám společnosti. |
Architektura clusteru: Zabezpečení přístupu ke kontejnerům k prostředkům | Omezte přístup k akcím, které mohou kontejnery provádět. Zadejte nejmenší počet oprávnění a vyhněte se použití kořenového nebo privilegovaného eskalace. |
Architektura úloh: K zabezpečení provozu HTTP(S) použijte firewall webových aplikací. | Pokud chcete zkontrolovat potenciální útoky, použijte bránu firewall webových aplikací, jako je Azure Web Application Firewall (WAF) na Aplikace Azure lication Gateway nebo Azure Front Door. |
Architektura clusteru: Řízení výchozího provozu clusteru | Ujistěte se, že odchozí provoz vašeho clusteru prochází přes bod zabezpečení sítě, jako je Azure Firewall nebo proxy server HTTP. |
Architektura clusteru: Použití opensourcového ID úloh Microsoft Entra a ovladače CSI úložiště tajných kódů s Azure Key Vaultem | Chraňte a obměňujte tajné kódy, certifikáty a připojovací řetězec ve službě Azure Key Vault pomocí silného šifrování. Poskytuje protokol auditu přístupu a uchovává základní tajné kódy mimo kanál nasazení. |
Architektura clusteru: Použijte Microsoft Defender for Containers. | Monitorujte a udržujte zabezpečení clusterů, kontejnerů a jejich aplikací. |
Další návrhy najdete v tématu Principy pilíře zabezpečení.
Azure Advisor pomáhá zajistit a zlepšit službu Azure Kubernetes. Poskytuje doporučení k podmnožině položek uvedených v následující části zásad, jako jsou clustery bez konfigurace RBAC, chybějící konfigurace Microsoft Defenderu, neomezený síťový přístup k serveru API. Podobně poskytuje doporučení pro úlohy pro některé položky iniciativy zabezpečení podů. Projděte si doporučení.
Definice zásad
Azure Policy nabízí různé integrované definice zásad, které se vztahují jak na prostředek Azure, tak na AKS, jako jsou standardní definice zásad, a použití doplňku Azure Policy pro Kubernetes i v rámci clusteru. Řada zásad prostředků Azure se nachází v rámci auditu nebo zamítnutí, ale také ve variantě Nasazení, pokud neexistuje .
Existuje mnoho klíčových zásad souvisejících s tímto pilířem, které jsou zde shrnuty. Podrobnější zobrazení najdete v předdefinovaných definicích zásad pro Kubernetes.
Architektura clusteru
- Microsoft Defender pro cloudové zásady
- Režim ověřování a zásady konfigurace (Microsoft Entra ID, RBAC, zákaz místního ověřování)
- Zásady síťového přístupu k serveru API, včetně privátního clusteru
Architektura clusteru a úloh
- Iniciativy zabezpečení podů clusteru Kubernetes na linuxových úlohách
- Zahrnout zásady možností podu a kontejneru, jako jsou AppArmor, sysctl, bezpečnostní limity, SELinux, seccomp, privilegované kontejnery, přihlašovací údaje rozhraní API pro automatické připojení clusteru
- Připojení, ovladače svazků a zásady systému souborů
- Zásady sítí podů nebo kontejnerů, jako jsou hostitelská síť, port, povolené externí IP adresy, ip adresy HTT A interní nástroje pro vyrovnávání zatížení
Nasazení služby Azure Kubernetes Service často také používají Azure Container Registry pro grafy Helm a image kontejnerů. Azure Container Registry také podporuje širokou škálu zásad Azure, které zahrnují omezení sítě, řízení přístupu a Microsoft Defender for Cloud, které doplňují zabezpečenou architekturu AKS.
Kromě předdefinovaných zásad je možné vytvořit vlastní zásady pro prostředek AKS i pro doplněk Azure Policy pro Kubernetes. To vám umožní přidat další omezení zabezpečení, která chcete vynutit v clusteru a architektuře úloh.
Další návrhy najdete v tématu Koncepty zabezpečení AKS a vyhodnocení našich doporučení k posílení zabezpečení na základě srovnávacího testu CIS Kubernetes.
Optimalizace nákladů
Optimalizace nákladů spočívá v pochopení různých možností konfigurace a doporučených osvědčených postupů pro snížení zbytečných výdajů a zlepšení efektivity provozu. Než budete postupovat podle pokynů v tomto článku, doporučujeme projít si následující zdroje informací:
- Principy návrhu optimalizace nákladů
- Jak fungují ceny a správa nákladů ve službě Azure Kubernetes Service (AKS) ve srovnání s Amazon Elastic Kubernetes Service (Amazon EKS).
- Pokud používáte AKS místně nebo na hraničních zařízeních, můžete Zvýhodněné hybridní využití Azure použít také k dalšímu snížení nákladů při spouštění kontejnerizovaných aplikací v těchto scénářích.
Při diskusi o optimalizaci nákladů se službou Azure Kubernetes Service je důležité rozlišovat mezi náklady na prostředky clusteru a náklady na prostředky úloh. Prostředky clusteru jsou sdílenou odpovědností mezi správcem clusteru a poskytovatelem prostředků, zatímco prostředky úloh jsou doménou vývojáře. Služba Azure Kubernetes Service má důležité informace a doporučení pro obě tyto role.
V kontrolním seznamu návrhu a v seznamu doporučení se uvádí, jestli je každá volba použitelná pro architekturu clusteru, architekturu úloh nebo obojí.
Pokud chcete optimalizovat náklady na cluster, přejděte na cenovou kalkulačku Azure a z dostupných produktů vyberte Službu Azure Kubernetes Service. V kalkulačce můžete otestovat různé konfigurace a platební plány.
Kontrolní seznam návrhu
- Architektura clusteru: Použijte odpovídající skladovou položku virtuálního počítače na fond uzlů a rezervované instance, u kterých se očekává dlouhodobá kapacita.
- Architektury clusteru a úloh: Použijte odpovídající vrstvu a velikost spravovaného disku.
- Architektura clusteru: Projděte si metriky výkonu počínaje procesorem, pamětí, úložištěm a sítí a identifikujte příležitosti optimalizace nákladů podle clusteru, uzlů a oboru názvů.
- Architektura clusteru a úloh: Škálování pomocí automatických škálování můžete využít v případech, kdy jsou úlohy méně aktivní.
Doporučení
Projděte si následující tabulku doporučení pro optimalizaci konfigurace AKS pro náklady.
Doporučení | Výhoda |
---|---|
Architektury clusterů a úloh: Sladění výběru skladové položky a velikosti spravovaného disku s požadavky na úlohy | Při porovnávání výběru s požadavky na úlohy zajistíte, že nebudete platit za nepotřebné prostředky. |
Architektura clusteru: Vyberte správný typ instance virtuálního počítače. | Výběr správného typu instance virtuálního počítače je kritický, protože přímo ovlivňuje náklady na spouštění aplikací v AKS. Volba vysoce výkonné instance bez správného využití může vést k plýtvání útratou, zatímco volba méně výkonné instance může vést k problémům s výkonem a vyšším výpadkům. Pokud chcete určit správný typ instance virtuálního počítače, zvažte charakteristiky úloh, požadavky na prostředky a potřeby dostupnosti. |
Architektura clusteru: Vyberte virtuální počítače na základě architektury Arm. | AKS podporuje vytváření uzlů agenta Arm64 Ubuntu a také kombinace uzlů architektury Intel a ARM v rámci clusteru, které můžou přinést lepší výkon s nižšími náklady. |
Architektura clusteru: Vyberte spotové virtuální počítače Azure. | Spotové virtuální počítače umožňují využívat nevyužitou kapacitu Azure s významnými slevami (až 90 % oproti průběžným platbám). Pokud Azure potřebuje kapacitu zpět, infrastruktura Azure vyřadí spotové uzly. |
Architektura clusteru: Vyberte příslušnou oblast. | Vzhledem k mnoha faktorům se náklady na prostředky liší v jednotlivých oblastech v Azure. Vyhodnoťte požadavky na náklady, latenci a dodržování předpisů, abyste měli jistotu, že vaše úlohy běží nákladově efektivně a nemá vliv na koncové uživatele ani nevytváří další poplatky za sítě. |
Architektura úloh: Údržba malých a optimalizovaných imagí | Zjednodušení imagí pomáhá snížit náklady, protože nové uzly potřebují stáhnout tyto image. Vytváření imagí způsobem, který umožňuje spuštění kontejneru co nejdříve, aby se zabránilo selháním uživatelských požadavků nebo vypršením časových limitů při spuštění aplikace, což může vést k nadměrnému zřízení. |
Architektura clusteru: Povolení automatického škálování clusteru automaticky snížit počet uzlů agentů v reakci na nadbytečnou kapacitu prostředků | Automatické vertikální navýšení kapacity počtu uzlů v clusteru AKS umožňuje spustit efektivní cluster, když je poptávka nízká a vertikálně navýšila kapacitu, když se poptávka vrátí. |
Architektura clusteru: Povolení automatického zřízení uzlu pro automatizaci výběru skladové položky virtuálního počítače | Automatické zřízení uzlu zjednodušuje proces výběru skladové položky a rozhoduje se na základě požadavků na nevyřízené prostředky podu, optimální konfigurace virtuálního počítače pro spouštění úloh nejefektivnějším a nákladově efektivním způsobem. |
Architektura úloh: Použijte horizontální automatické škálování podů. | Upravte počet podů v nasazení v závislosti na využití procesoru nebo jiných vybraných metrikách, které podporují operace škálování clusteru. |
Architektura úloh: Použití vertikálního automatického škálování podů (Preview) | Zpřístupněte svoje pody a dynamicky nastavujte požadavky a limity na základě historického využití. |
Architektura úloh: Použití automatického škálování řízeného událostmi Kubernetes (KEDA) | Škálování na základě počtu zpracovávaných událostí Vyberte si z bohatého katalogu škálovacích nástrojů KEDA o velikosti 50 a více. |
Architektury clusterů a úloh: Osvojte si finanční disciplínu cloudu a kulturní praxi, abyste mohli řídit vlastnictví využití cloudu. | Základem povolení optimalizace nákladů je rozložení clusteru s úsporou nákladů. Přístup k finančním operacím (FinOps) se často používá k tomu, aby organizace snížily náklady na cloud. Jedná se o praxi, která zahrnuje spolupráci mezi finančními, provozními a technickými týmy za účelem zajištění sladění cílů úspor nákladů a zajištění transparentnosti nákladů na cloud. |
Architektura clusteru: Registrace rezervací Azure nebo plánu Úspory v Azure | Pokud jste správně naplánovali kapacitu, vaše úloha je předvídatelná a existuje po delší dobu, zaregistrujte si rezervaci Azure nebo plán úspor, abyste snížili náklady na prostředky. |
Architektura clusteru: Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a určete nejlepší strategii monitorování vašich úloh. | – |
Architektura clusteru: Konfigurace doplňku AKS Cost Analysis | Rozšíření clusteru analýzy nákladů umožňuje získat podrobný přehled o nákladech spojených s různými prostředky Kubernetes ve vašich clusterech nebo oborech názvů. |
Další návrhy najdete v tématu Principy pilíře optimalizace nákladů a Optimalizace nákladů ve službě Azure Kubernetes Service.
Definice zásad
I když neexistují žádné předdefinované zásady, které souvisejí s optimalizací nákladů, je možné vytvořit vlastní zásady pro prostředek AKS i pro doplněk Azure Policy pro Kubernetes. To vám umožní přidat další omezení optimalizace nákladů, která chcete vynutit v clusteru a architektuře úloh.
Efektivita cloudu
Efektivnější a efektivnější úlohy v cloudu vyžadují kombinaci úsilí o optimalizaci nákladů, snížení emisí uhlíku a optimalizaci spotřeby energie. Optimalizace nákladů aplikace je počátečním krokem při vytváření trvalejších úloh.
Naučte se vytvářet udržitelné a efektivní úlohy AKS v zásadách vytváření softwaru pro trvalou udržitelnost ve službě Azure Kubernetes Service (AKS).
Provozní dokonalost
Monitorování a diagnostika jsou zásadní. Můžete nejen měřit statistiky výkonu, ale také rychle řešit a opravovat problémy pomocí metrik. Doporučujeme vám zkontrolovat principy návrhu efektivity provozu a provozní příručku Den-2.
Při diskusi o efektivitě provozu se službou Azure Kubernetes Service je důležité rozlišovat mezi efektivitou provozu clusteru a efektivitou provozu úloh. Operace clusteru jsou sdílenou odpovědností mezi správcem clusteru a poskytovatelem prostředků, zatímco operace úloh jsou doménou vývojáře. Služba Azure Kubernetes Service má důležité informace a doporučení pro obě tyto role.
V kontrolním seznamu návrhu a v seznamu níže uvedených doporučení se uvádí, jestli je každá volba použitelná pro architekturu clusteru, architekturu úloh nebo obojí.
Kontrolní seznam návrhu
- Architektura clusteru: Použití nasazení založeného na šablonách pomocí Bicep, Terraformu nebo jiných. Ujistěte se, že všechna nasazení jsou opakovatelná, trasovatelná a uložená v úložišti zdrojového kódu.
- Architektura clusteru: Vytvořte automatizovaný proces, který zajistí, aby se clustery spouštěly s potřebnými konfiguracemi a nasazeními pro celý cluster. To se často provádí pomocí GitOps.
- Architektura úloh: Použijte opakovatelné a automatizované procesy nasazení pro vaši úlohu v rámci životního cyklu vývoje softwaru.
- Architektura clusteru: Povolte nastavení diagnostiky, abyste zajistili, že se protokolují interakce řídicí roviny nebo základního serveru api.
- Architektury clusterů a úloh: Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a určete nejlepší strategii monitorování vašich úloh.
- Architektura úloh: Úloha by měla být navržená tak, aby vygenerovávala telemetrická data, která se dají shromažďovat, což by také mělo zahrnovat stav aktuálnosti a připravenosti.
- Architektury clusteru a úloh: Využijte postupy pro přípravu chaosu, které cílí na Kubernetes, k identifikaci problémů se spolehlivostí aplikací nebo platforem.
- Architektura úloh: Optimalizujte úlohu tak, aby fungovala a efektivně nasazuje v kontejneru.
- Architektury clusterů a úloh: Vynucování zásad správného řízení clusteru a úloh pomocí Azure Policy
Doporučení
Projděte si následující tabulku doporučení pro optimalizaci konfigurace AKS pro operace.
Doporučení | Výhoda |
---|---|
Architektury clusterů a úloh: Projděte si dokumentaci k osvědčeným postupům AKS. | Pokud chcete úspěšně sestavovat a spouštět aplikace v AKS, je potřeba pochopit a implementovat klíčové aspekty. Mezi tyto oblasti patří funkce víceklientské architektury a plánovače, cluster a zabezpečení podů nebo provozní kontinuita a zotavení po havárii. |
Architektury clusterů a úloh: Zkontrolujte Azure Chaos Studio. | Azure Chaos Studio může pomoct simulovat chyby a aktivovat situace zotavení po havárii. |
Architektury clusterů a úloh: Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a určete nejlepší strategii monitorování vašich úloh. | – |
Architektura clusteru: Využijte strategii pro více oblastí nasazením clusterů AKS nasazených napříč různými oblastmi Azure, abyste maximalizovali dostupnost a zajistili provozní kontinuitu. | Internetové úlohy by měly využívat Azure Front Door nebo Azure Traffic Manager ke směrování provozu globálně napříč clustery AKS. |
Architektura clusteru: Zprovoznění standardů konfigurace clusterů a podů pomocí služby Azure Policy | Azure Policy vám může pomoct s uplatňováním vynucování ve velkém měřítku a zabezpečením v clusterech centralizovaným a konzistentním způsobem. Může také řídit, jaké pody funkcí se udělují, a pokud je něco spuštěné proti zásadám společnosti. |
Architektura úloh: Použití funkcí platformy v procesu přípravy vydaných verzí | Kontrolery Kubernetes a příchozího přenosu dat podporují mnoho pokročilých vzorů nasazení pro zahrnutí do procesu přípravy verzí. Zvažte vzory, jako jsou modrá-zelená nasazení nebo kanárské verze. |
Architektury clusterů a úloh: Pro klíčové úlohy použijte modré/zelené nasazení na úrovni kolku. | Automatizujte důležité oblasti návrhu, včetně nasazení a testování. |
Další návrhy najdete v tématu Principy pilíře efektivity provozu.
Azure Advisor také poskytuje doporučení k podmnožině položek uvedených v následující části zásad, jako jsou nepodporované verze AKS a nekonfigurovaná nastavení diagnostiky. Stejně tak poskytuje doporučení pro úlohy týkající se použití výchozího oboru názvů.
Definice zásad
Azure Policy nabízí různé integrované definice zásad, které se vztahují jak na prostředek Azure, tak na AKS, jako jsou standardní definice zásad, a použití doplňku Azure Policy pro Kubernetes i v rámci clusteru. Řada zásad prostředků Azure se nachází v rámci auditu nebo zamítnutí, ale také ve variantě Nasazení, pokud neexistuje .
Existuje mnoho klíčových zásad souvisejících s tímto pilířem, které jsou zde shrnuty. Podrobnější zobrazení najdete v předdefinovaných definicích zásad pro Kubernetes.
Architektura clusteru
- Doplněk Azure Policy pro Kubernetes
- Zásady konfigurace GitOps
- Zásady nastavení diagnostiky
- Omezení verzí AKS
- Zakázat vyvolání příkazu
Architektura clusteru a úloh
- Omezení nasazení oboru názvů
Kromě předdefinovaných zásad je možné vytvořit vlastní zásady pro prostředek AKS i pro doplněk Azure Policy pro Kubernetes. To vám umožní přidat další omezení zabezpečení, která chcete vynutit v clusteru a architektuře úloh.
Efektivita výkonu
Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Doporučujeme vám projít si principy efektivity výkonu.
Při diskusi o výkonu se službou Azure Kubernetes Service je důležité rozlišovat mezi výkonem clusteru a výkonem úloh. Výkon clusteru je sdílená odpovědnost mezi správcem clusteru a jeho poskytovatelem prostředků, zatímco výkon úloh je doménou vývojáře. Služba Azure Kubernetes Service má důležité informace a doporučení pro obě tyto role.
V kontrolním seznamu návrhu a v seznamu níže uvedených doporučení se uvádí, jestli je každá volba použitelná pro architekturu clusteru, architekturu úloh nebo obojí.
Kontrolní seznam návrhu
Při rozhodování o návrhu služby Azure Kubernetes Service si projděte principy efektivity výkonu.
- Architektury clusteru a úloh: Proveďte a iterujte podrobné cvičení plánu kapacity, které zahrnuje skladovou položku, nastavení automatického škálování, přidělování IP adres a aspekty převzetí služeb při selhání.
- Architektura clusteru: Umožňuje automatické škálování clusteru automaticky upravit počet uzlů agentů v požadavcích na úlohy odezvy.
- Architektura clusteru: Pomocí horizontálního automatického škálování podů můžete upravit počet podů v nasazení v závislosti na využití procesoru nebo jiných vybraných metrikách.
- Architektury clusteru a úloh: Provádění probíhajících aktivit zátěžového testování, které provádějí pod i automatické škálování clusteru.
- Clusterové architektury a architektury úloh: Rozdělte úlohy do různých fondů uzlů, které umožňují nezávislé škálování.
Doporučení
Projděte si následující tabulku doporučení pro optimalizaci konfigurace služby Azure Kubernetes Service pro zajištění výkonu.
Doporučení | Výhoda |
---|---|
Architektury clusterů a úloh: Vytvořte podrobný plán kapacity a průběžně kontrolujte a revidujte. | Po formalizaci plánu kapacity by se měl často aktualizovat průběžným sledováním využití prostředků clusteru. |
Architektura clusteru: Povolení automatického škálování clusteru automaticky upravit počet uzlů agenta v reakci na omezení prostředků. | Možnost automatického vertikálního navýšení nebo snížení počtu uzlů v clusteru AKS umožňuje spustit efektivní a nákladově efektivní cluster. |
Clustery a architektury úloh: Rozdělte úlohy do různých fondů uzlů a zvažte škálování fondů uzlů uživatelů. | Na rozdíl od fondů systémových uzlů, které vždy vyžadují spuštěné uzly, fondy uzlů uživatelů umožňují vertikálně navýšit nebo snížit kapacitu. |
Architektura úloh: Používejte pokročilé funkce plánovače AKS. | Pomáhá řídit vyrovnávání prostředků pro úlohy, které je vyžadují. |
Architektura úloh: Používejte smysluplné metriky škálování úloh. | Ne všechna rozhodnutí o škálování mohou být odvozena z metrik procesoru nebo paměti. Aspekty škálování často pocházejí ze složitějších nebo dokonce externích datových bodů. KeDA slouží k vytvoření smysluplné sady pravidel automatického škálování na základě signálů specifických pro vaši úlohu. |
Další návrhy najdete v tématu Principy pilíře efektivity výkonu.
Definice zásad
Azure Policy nabízí různé integrované definice zásad, které se vztahují jak na prostředek Azure, tak na AKS, jako jsou standardní definice zásad, a použití doplňku Azure Policy pro Kubernetes i v rámci clusteru. Řada zásad prostředků Azure se nachází v rámci auditu nebo zamítnutí, ale také ve variantě Nasazení, pokud neexistuje .
Existuje mnoho klíčových zásad souvisejících s tímto pilířem, které jsou zde shrnuty. Podrobnější zobrazení najdete v předdefinovaných definicích zásad pro Kubernetes.
Architektura clusteru a úloh
- Omezení prostředků procesoru a paměti
Kromě předdefinovaných zásad je možné vytvořit vlastní zásady pro prostředek AKS i pro doplněk Azure Policy pro Kubernetes. To vám umožní přidat další omezení zabezpečení, která chcete vynutit v clusteru a architektuře úloh.
Další materiály
Doprovodné materiály ke službě Azure Architecture Center
- Základní architektura AKS
- Architektura pokročilých mikroslužeb AKS
- Cluster AKS pro úlohu PCI-DSS
- Standardní hodnoty AKS pro clustery s více oblastmi
Pokyny k architektuře Cloud Adoption Framework
Další kroky
- Nasazení clusteru Azure Kubernetes Service (AKS) pomocí rychlého startu Azure CLI : Nasazení clusteru Azure Kubernetes Service (AKS) pomocí Azure CLI