Osvědčené postupy architektury pro službu Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) je spravovaná služba Kubernetes, kterou můžete použít k nasazení a správě kontejnerizovaných aplikací. Podobně jako jiné spravované služby a AKS přesměruje většinu provozních režijních nákladů do Azure a současně poskytuje pro úlohy funkce vysoké dostupnosti, škálovatelnosti a přenositelnosti.

Tento článek předpokládá, že jste jako architekt zkontrolovali rozhodovací strom výpočetních prostředků a jako výpočetní prostředky pro vaši úlohu zvolili AKS. Pokyny v tomto článku poskytují architektonická doporučení, která jsou mapována na principy pilířů Azure Well-Architected Framework.

Rozsah technologií

Tato kontrola se zaměřuje na vzájemně nesouvisející rozhodnutí pro následující prostředky Azure:

  • AKS

Když probíráte osvědčené postupy rámce Well-Architected pro AKS, je důležité rozlišovat mezi clusterem a workloadem. Osvědčené postupy clusteru jsou sdílenou odpovědností mezi správcem clusteru a poskytovatelem prostředků, zatímco osvědčené postupy úloh jsou doménou vývojáře. Tento článek obsahuje důležité informace a doporučení pro každou z těchto rolí.

Note

Následující pilíře zahrnují kontrolní seznam návrhu a seznam doporučení , která označují, jestli je každá volba použitelná pro architekturu clusteru , architekturu úloh nebo obojí.

Reliability

Účelem pilíře spolehlivosti je poskytovat nepřetržitou funkčnost budování dostatečné odolnosti a schopnost rychle se zotavit z selhání.

principy návrhu spolehlivosti poskytují základní strategii návrhu použitou pro jednotlivé komponenty, systémové toky a systém jako celek.

Kontrolní seznam návrhu úloh

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhů z hlediska spolehlivosti. Určete její význam pro vaše obchodní požadavky a mějte přitom na paměti funkce AKS a jejich závislosti. Rozšiřte strategii tak, aby podle potřeby zahrnovala více přístupů.

  • (Cluster) sestavení redundance za účelem zlepšení odolnosti. Použití zón dostupnosti pro clustery AKS jako součást strategie odolnosti ke zvýšení dostupnosti při nasazení do jedné oblasti. Řada oblastí Azure poskytuje zóny dostupnosti. Zóny jsou dostatečně blízko, aby mezi nimi byla připojení s nízkou latencí, ale dostatečně daleko od sebe, aby se snížila pravděpodobnost, že místní výpadky ovlivní více než jednu zónu.

    Pro důležité úlohy nasaďte několik clusterů napříč různými oblastmi Azure. Geograficky distribuováním clusterů AKS můžete dosáhnout vyšší odolnosti a minimalizovat účinky oblastních selhání. Strategie více oblastí pomáhá maximalizovat dostupnost a zajistit kontinuitu podnikových procesů. Internetové úlohy by měly používat Azure Front Door nebo Azure Traffic Manager ke směrování provozu napříč clustery AKS. Další informace najdete v tématu Strategie více oblastí.

    Naplánujte adresní prostor IP adres tak, aby váš cluster dokázal spolehlivě škálovat a zpracovávat provoz při převzetí při selhání v topologiích s více clustery.

  • (Cluster a úloha) Monitorujte spolehlivost a celkové ukazatele stavu clusteru a úloh. Shromažďujte logy a metriky pro monitorování stavu úloh, identifikovat trendy výkonu a spolehlivosti a řešit problémy. Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a příručku pro modelování stavu Well-Architected pro úlohy, abyste navrhli řešení pro monitorování spolehlivosti a stavu pro vaše řešení AKS.

    Ujistěte se, že jsou úlohy vytvořené tak, aby podporovaly horizontální škálování a hlásit připravenost a stav aplikace.

  • cs-CZ: (Cluster a úloha) Hostovat aplikační pody ve fondech uzlů uživatelů. Izolováním systémových podů od aplikačního zatížení pomáháte zajistit, aby základní služby systému AKS nebyly ovlivněny prostředkovými požadavky nebo potenciálními problémy způsobenými úlohou, která běží ve fondech uzlů uživatelů.

    Ujistěte se, že vaše úloha běží na uživatelských uzlových poolech a zvolte správnou velikost SKU. Minimálně zahrňte dva uzly pro fondy uzlů uživatelů a tři uzly pro fond systémových uzlů.

  • (Klastr a pracovní zátěž) Zohledněte do svých cílů dostupnosti a obnovy smlouvu o úrovni služeb (SLA) pro provozní dobu AKS. Pro definování cílů spolehlivosti a obnovy pro váš klastr a pracovní zátěž postupujte podle pokynů v Doporučení k definování cílů spolehlivosti. Pak formulujte návrh, který tyto cíle splňuje.

  • (Cluster a úloha) Chraňte clusterovou službu AKS pomocí služby Azure Backup uložením bodů obnovení do trezoru služby Backup a provedením obnovení během jakéhokoli scénáře havárie. Pokud chcete zálohovat a obnovovat kontejnerizované aplikace a data spuštěná v clusterech AKS, postupujte podle pokynů v přehledu zálohování AKS pro konfiguraci ochrany.

Doporučení pro konfiguraci

Recommendation Benefit
(Cluster a pracovní zátěž) Řízení plánování podů pomocí selektorů uzlů a vazby.

V AKS může plánovač Kubernetes logicky izolovat úlohy podle hardwaru v uzlu. Na rozdíl od tolerancí lze na označených uzlech naplánovat pody, které nemají odpovídající selektor uzlu, ale přednost mají pody s definovaným odpovídajícím selektorem uzlu.
Afinitu k uzlům má za následek větší flexibilitu, což umožňuje definovat, co se stane, když nelze přiřadit pod k žádnému uzlu.
(Cluster) Zvolte odpovídající síťový modul plug-in na základě požadavků na síť a velikosti clusteru.

Různé síťové moduly plug-in poskytují různé úrovně funkčnosti. Rozhraní Azure Container Networking Interface (Azure CNI) se vyžaduje pro konkrétní scénáře, jako jsou fondy uzlů se systémem Windows, některé síťové požadavky a zásady sítě Kubernetes.

U rozšířené správy IP adres zvažte Azure CNI s přidělováním statických bloků , což zlepšuje plánování sítě a snižuje vyčerpání IP adres při zachování integrace zabezpečení sítě s pravidly brány firewall a zásadami sítě.

Další informace viz Kubenet versus Azure CNI.
Správný síťový modul plug-in může pomoci zajistit lepší kompatibilitu a výkon. Přidělování statických bloků umožňuje konzistentní rozsahy IP adres pro lepší konfiguraci zásad zabezpečení a plánování kapacity.
(Cluster a úloha) Použijte SLA dostupnosti AKS pro clustery na produkční úrovni. Úloha může podporovat vyšší cíle dostupnosti z důvodu vyšších záruk dostupnosti koncového bodu serveru rozhraní API Kubernetes pro clustery AKS.
(Cluster) Využijte zóny dostupnosti k maximalizaci odolnosti v rámci oblasti Azure tím, že distribuujte uzly agenta AKS mezi fyzicky oddělená datacentra.

Pokud existují požadavky na kolokaci, použijte nasazení AKS založené na škálovacích sadách běžného virtuálního počítače v jedné zóně nebo použijte proximity placement groups k minimalizaci latence mezi uzly.
Rozmístěním fondů uzlů napříč několika zónami budou uzly v jednom fondu dál fungovat i v případě, že dojde k výpadku jiné zóny.
(Cluster a úloha) Definujte požadavky a omezení prostředků podů v manifestech nasazení aplikace. Vynucujte tato omezení pomocí služby Azure Policy. Omezení zdrojů CPU a paměti kontejneru jsou nutná, aby se zabránilo vyčerpání zdrojů ve vašem clusteru Kubernetes.
(Cluster a pracovní zátěž) Udržujte fond systémových uzlů izolovaný od pracovních zátěží aplikací.

Sady uzlů systému vyžadují virtuální počítač (VM) typu s alespoň 2 vCPU a 4 GB paměti. Doporučujeme použít 4 vCPU nebo více. Více informací najdete v části systémové a uživatelské uzlové fondy.
Fond systémových uzlů hostuje důležité systémové pody, které jsou nezbytné pro řídicí rovinu clusteru. Když tyto systémové pody izolujete z úloh aplikací, pomůžete zajistit, aby základní služby nebyly ovlivněny požadavky na prostředky nebo potenciální problémy způsobené úlohou.
(Clustery a pracovní zátěže) Oddělte aplikace do vyhrazených poolů uzlů na základě konkrétních požadavků a pečlivě plánujte tuto segmentaci.

Vyhněte se velkému počtu skupin uzlů, abyste snížili náklady na správu. Můžete například společně umístit více modelů virtuálních počítačů do jednoho fondu uzlů za předpokladu, že splňují stejné požadavky.
Aplikace můžou sdílet stejnou konfiguraci a potřebují virtuální počítače s podporou GPU, procesor nebo paměťově optimalizované virtuální počítače nebo možnost škálování na nulu. Přiřazením fondů uzlů konkrétním aplikacím můžete zajistit, že každá aplikace získá prostředky, které potřebuje, aniž by byly prostředky přiděleny nadměrně nebo nevyužity.
(Cluster) Použijte NAT gateway pro clustery, které provozují úlohy s mnoha souběžnými odchozími připojeními. Azure NAT Gateway podporuje spolehlivý příchozí provoz ve velkém měřítku a pomáhá vyhnout se problémům se spolehlivostí tím, že použije omezení Azure Load Balanceru na vysoký souběžný odchozí provoz.
(Cluster a pracovní zátěž) Pomocí služby Azure Backup můžete chránit cluster AKS a obnovit do alternativních regionů během havárie. Azure Backup podporuje operace zálohování a obnovení kontejnerizovaných aplikací a dat pro stav clusteru i běžících dat aplikací.

Zálohy můžete použít v případě regionální katastrofy a obnovit zálohy.
Azure Backup se službou Azure Kubernetes Service (AKS) nabízí plně spravované, škálovatelné, zabezpečené a nákladově efektivní řešení. Vylepšuje spolehlivost úloh bez složitosti nastavení a údržby infrastruktury zálohování.

Zabezpečení

Účelem pilíře zabezpečení je poskytnout záruky důvěrnosti, integrity a dostupnosti úloh.

Principy návrhu zabezpečení poskytují strategii návrhu vysoké úrovně pro dosažení těchto cílů použitím přístupů k technickému návrhu AKS.

Kontrolní seznam návrhu úloh

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro zabezpečení a identifikujte ohrožení zabezpečení a kontrolní mechanismy, které zlepšují stav zabezpečení. Seznamte se s koncepty zabezpečení AKS a zhodnoťte doporučení pro zpevnění bezpečnosti na základě benchmarku CIS Kubernetes. Rozšiřte strategii tak, aby podle potřeby zahrnovala více přístupů.

  • (Cluster) Integrace s Microsoft Entra ID pro správu identit a přístupu Centralizovaná správa identit pro váš cluster pomocí Microsoft Entra ID. Jakákoli změna uživatelského účtu nebo stavu skupiny se automaticky aktualizuje v přístupu ke clusteru AKS. Stanovit identitu jako primární bezpečnostní hranici. Vývojáři a vlastníci aplikací vašeho clusteru Kubernetes potřebují přístup k různým prostředkům.

    Použijte řízení přístupu na základě role Kubernetes (RBAC) s Microsoft Entra ID pro přístup s nejnižšími oprávněními. Chraňte konfiguraci a tajné kódy minimalizací přidělení oprávnění správce.

  • (Cluster) Integrace s nástroji pro monitorování zabezpečení a informace o zabezpečení a správu událostí. používat Microsoft Defender for Containers se službou Microsoft Sentinel k detekci a rychlé reakci na hrozby napříč clustery a úlohami, které na nich běží. Povolte konektor AKS pro Microsoft Sentinel pro streamování diagnostických protokolů AKS do Microsoft Sentinelu.

  • (Cluster a pracovní zátěž) Implementujte segmentaci a síťové řízení. Chcete-li zabránit exfiltraci dat, ujistěte se, že je povolený pouze autorizovaný a bezpečný provoz, a snižte dopad bezpečnostního narušení.

    Zvažte použití privátního clusteru AKS, který vám pomůže zajistit, aby provoz správy clusterů na váš server rozhraní API zůstal ve vaší privátní síti. Nebo použijte seznam povolených serverů rozhraní API pro veřejné clustery.

  • (Úloha) Použití firewallu webových aplikací (WAF) ke kontrole příchozího provozu potenciálních útoků WAF dokáže detekovat a zmírnit hrozby v reálném čase, aby se před dosažením vašich aplikací zablokoval škodlivý provoz. Poskytuje robustní ochranu před běžnými webovými útoky, jako jsou injektáž SQL, cross-site scripting, a další zranitelnosti identifikované projektem Open Web Application Security Project. Některé nástroje pro vyrovnávání zatížení, jako je azure Application Gateway nebo azure Front Door mají integrovaný WAF.

  • (Úloha) Automatizujte mTLS mezi příchozím přenosem dat a síťovými službami. Pokud vaše úloha používá síť služeb, jako je Istio, použijte službu Application Gateway pro kontejnery s integrací Istio k automatizaci připojení, důvěryhodnosti a obměny certifikátů mTLS mezi sdílenou vrstvou příchozího přenosu dat a službami s podporou sítě. To snižuje opakované konfigurace mTLS a rozšiřuje šifrované cesty provozu pro kontejnerové platformy. Stejně jako u jakékoli integrace se ujistěte, že před nasazením testujete funkce.

  • (Pracovní zátěž) Udržujte posílený dodavatelský řetězec softwaru pro pracovní zátěž. Ujistěte se, že váš systém kontinuální integrace a průběžného doručování je posílený kontrolou s podporou kontejnerů.

  • (Cluster a úloha) Implementovat dodatečnou ochranu pro specializované zabezpečené úlohy. Pokud váš cluster potřebuje spustit citlivou úlohu, možná budete muset nasadit privátní cluster. Tady je několik příkladů:

  • (Cluster) Využití rozšířeného zabezpečení z rozšíření clusteru spravovaných v řídicí roviněSprávce rozšíření běží v řídicí rovině spravované v Azure, snižuje prostor pro útoky na pracovní uzly a zjednodušuje požadavky na sítě clusteru při zachování funkcí rozšíření. Tato centralizovaná správa rozšíření eliminuje nutnost zabezpečit a udržovat komponenty rozšíření na pracovních uzlech zákazníka.

Doporučení pro konfiguraci

Recommendation Benefit
(Cluster) Používejte spravované identity v clusteru. Můžete se vyhnout režijním nákladům spojeným se správou a obměnou služebních principů.
(Úloha) Pomocí ID úlohy Microsoft Entra s AKS přistupovat k prostředkům chráněným Microsoft Entra, jako je Azure Key Vault a Microsoft Graph, z vaší úlohy. Id úloh AKS můžete použít k ochraně přístupu k prostředkům Azure pomocí RBAC id Microsoft Entra, aniž byste museli spravovat přihlašovací údaje přímo v kódu.
(Cluster) Použijte Microsoft Entra ID k autentizaci vůči Azure Container Registry z AKS. Pomocí Microsoft Entra ID se AKS může ověřit s Container Registry bez použití imagePullSecrets tajných kódů.
(Cluster) Zabezpečte síťový provoz na server rozhraní API pomocí privátního clusteru AKS, pokud požadavky na úlohy vyžadují vyšší úroveň segmentace. Ve výchozím nastavení síťový provoz mezi fondy uzlů a serverem rozhraní API prochází páteřní sítí 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.
(Cluster) Pro veřejné clustery AKS použijte rozsahy IP adres autorizovaných serverem rozhraní API. Zahrňte zdroje, jako jsou veřejné IP adresy agentů sestavení nasazení, provozní správa a výstupní bod fondů uzlů, například Azure Firewall. Když používáte veřejné clustery, můžete výrazně snížit prostor pro útoky na cluster AKS omezením provozu, který může dosáhnout serveru rozhraní API vašich clusterů.
(Cluster) Chraňte server rozhraní API pomocí Microsoft Entra ID RBAC (řízení přístupu na základě role).

Zakázat místní účty a vynutit veškerý přístup ke clusteru pomocí identit založených na Microsoft Entra ID.
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 Kubernetes RBAC s Id Microsoft Entra, abyste mohli řídit přístup k serveru rozhraní API.
(Cluster) Použijte zásady sítě Azure nebo Calico. Pomocí zásad můžete zabezpečit a řídit síťový provoz mezi pody v clusteru. Calico poskytuje bohatší sadu funkcí, včetně řazení zásad a priority, pravidel zamítnutí a flexibilnějších pravidel shody.
(Cluster) Zabezpečení clusterů a podů pomocí Služby Azure Policy Azure Policy vám může pomoct s uplatňováním vynucování a ochrany na clusterech centralizovaným a konzistentním způsobem. Může také řídit, jaké funkce jsou povoleny pro pody, a zjistit, zda něco běží v rozporu se zásadami společnosti.
(Cluster) Zabezpečte přístup ke zdrojům prostřednictvím kontejnerů. 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.

Informace o kontejnerech založených na Linuxu najdete v tématu Zabezpečení přístupu k prostředkům pomocí integrovaných funkcí zabezpečení Linuxu.
Omezením oprávnění a vyhýbáním se použití root nebo privilegovaného zvýšení oprávnění můžete snížit riziko porušení zabezpečení. Můžete zajistit, aby i v případě ohrožení kontejneru bylo potenciální poškození minimalizováno.
(Cluster) Řízení odchozího provozu clusteru zajištěním, že odchozí provoz vašeho clusteru prochází přes bod zabezpečení sítě, jako je Azure Firewall nebo proxy server HTTP. Směrováním odchozího provozu přes Azure Firewall nebo proxy server HTTP můžete vynutit zásady zabezpečení, které brání neoprávněnému přístupu a exfiltraci dat. Tento přístup také zjednodušuje správu zásad zabezpečení a usnadňuje vynucování konzistentních pravidel v celém clusteru AKS.
(Cluster) Nakonfigurujte podporu proxy serveru HTTP pro existující clustery AKS v prostředích závislých na proxy serveru.

Povolte konfiguraci proxy serveru HTTP pro uzly AKS i pody pro integraci se stávajícími architekturami zabezpečení podnikové sítě a požadavky na dodržování předpisů.
Důležité pro finanční služby a další regulovaná odvětví, která vyžadují, aby veškerý internetový provoz procházel přes podnikové proxy servery HTTP pro účely kontroly zabezpečení a monitorování dodržování předpisů. Umožňuje bezproblémovou integraci se stávající infrastrukturou zabezpečení podnikové sítě.
(Cluster) Implementujte podporu vlastní certifikační autority pro navázání vztahů důvěryhodnosti mezi clustery AKS a infrastrukturou infrastruktury veřejných klíčů v podniku.

Nakonfigurujte vlastní CA, aby umožňovala důvěru pro privátní registry, proxy servery a brány firewall v rámci existujících architektur pro správu certifikátů organizace.
Nezbytné pro podniky s infrastrukturou interní certifikační autority. Umožňuje clusterům AKS důvěřovat privátním registrům organizace a interním službám při zachování podnikových zásad zabezpečení a požadavků na dodržování předpisů.
(Cluster) Použijte opensourcový ID sady funkcí Microsoft Entra a ovladač CSI úložiště tajných kódů se službou Key Vault. Tyto funkce pomáhají chránit a obměňovat tajné kódy, certifikáty a připojovací řetězce ve službě Key Vault pomocí silného šifrování. Poskytují protokol auditu přístupu a udržují zásadní tajemství mimo deployment pipeline.
(Cluster) Použijte Microsoft Defender for Containers. Microsoft Defender for Containers pomáhá monitorovat a udržovat zabezpečení clusterů, kontejnerů a jejich aplikací.

Optimalizace nákladů

Optimalizace nákladů se zaměřuje na zjišťování vzorců útraty, stanovení priorit investic do kritických oblastí a na optimalizaci v jiných oblastech, aby odpovídaly rozpočtu organizace a zároveň plnily obchodní požadavky.

Principy návrhu optimalizace nákladů poskytují strategii návrhu vysoké úrovně pro dosažení těchto cílů a dosažení kompromisů v technickém návrhu souvisejícím s AKS a jeho prostředím.

Kontrolní seznam návrhu úloh

Zahajte svou strategii návrhu na základě kontrolního seznamu přezkumu návrhu pro optimalizaci nákladů pro investice. Dolaďte návrh tak, aby úloha byla v souladu s rozpočtem přiděleným pro danou úlohu. Váš návrh by měl využívat správné možnosti Azure, monitorovat investice a hledat příležitosti k optimalizaci v průběhu času.

  • (Cluster) zahrnout cenové úrovně pro AKS do nákladového modelu. K odhadu nákladů použijte cenovou kalkulačku Azure a otestujte různé konfigurace a platební plány v kalkulačce.

  • (Cluster) Získejte nejlepší ceny pro vaši zátěž. Použijte odpovídající typ virtuálního počítače pro každý fond uzlů, protože to přímo ovlivňuje náklady na provoz vašich úloh. Volba vysoce výkonného virtuálního počítače bez správného využití může vést k plýtvání útratou. Výběr méně výkonného virtuálního počítače může způsobit problémy s výkonem a zvýšené výpadky.

    Pokud jste správně naplánovali kapacitu a vaše úlohy jsou předvídatelné a budou existovat po delší dobu, zaregistrujte si rezervace Azure nebo plán úspor , abyste snížili náklady na prostředky.

    Zvolte Azure Spot Virtual Machines k využití nevyužité kapacity Azure s významnými slevami. Tyto slevy můžou dosáhnout až 90% cen průběžných plateb. Pokud Azure potřebuje kapacitu zpět, infrastruktura Azure vyřadí spotové uzly.

    Pokud spouštíte AKS v místním prostředí nebo na okraji, můžete také použít Zvýhodněné hybridní využití Azure ke snížení nákladů při provozování kontejnerizovaných aplikací v těchto scénářích.

  • (Cluster a pracovní zátěž) Optimalizace nákladů komponent pracovní zátěže. Zvolte nákladově nejefektivnější oblast pro vaši pracovní zátěž. 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 že to neovlivní vaše zákazníky ani nevytáčí další poplatky za síť. Oblast, ve které nasazujete úlohu v Azure, může výrazně ovlivnit náklady. Vzhledem k mnoha faktorům se náklady na prostředky pro každou oblast v Azure liší.

    Udržujte malé a optimalizované image, které pomáhají snížit náklady, protože nové uzly potřebují stáhnout tyto image. Selhání nebo vypršení časových limitů u uživatelských požadavků při spuštění aplikace může vést k nadměrnému přidělení prostředků. Vytvářejte image způsobem, který umožní kontejner spustit co nejdříve, aby se předešlo selháním a vypršení časových limitů.

    Projděte si doporučení optimalizace nákladů v osvědčených postupech pro monitorování Kubernetes pomocí služby Azure Monitor a určete nejlepší strategii monitorování vašich úloh. Analyzujte 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ů.

  • (Cluster a úloha) Optimalizace nákladů na škálování úloh. Zvažte alternativní konfigurace vertikálního a horizontálního škálování, abyste snížili náklady na škálování, a přitom stále splňují všechny požadavky na úlohy. Automatické škálování můžete použít ke snížení kapacity, když jsou pracovní zátěže méně aktivní.

  • (Klastrování a pracovní zátěž) Shromažďovat a analyzovat údaje o nákladech. Klíčem k umožnění optimalizace nákladů je rozprostření nákladově úsporného clusteru. Vytvořte nákladově efektivní myšlení, 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 náklady na cloud.

Doporučení pro konfiguraci

Recommendation Benefit
(Zásobník a pracovní zátěž) Zarovnejte výběr SKU AKS a velikost spravovaného disku s požadavky pracovního zatížení. Párování výběru s požadavky na úlohy pomáhá zajistit, abyste nezaplatili nepotřebné prostředky.
(Cluster) Zvolte správné typy instancí VM pro vaše AKS fondy uzlů .

Pokud chcete určit správné typy instancí virtuálních počítačů, zvažte charakteristiky úloh, požadavky na prostředky a potřeby dostupnosti.
Výběr správného typu instance virtuálního počítače je zásadní, 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. Volba méně výkonné instance může vést k problémům s výkonem a vyšším výpadkům.
(Cluster) Vyberte virtuální počítače na základě výkonnější architektury Azure Resource Manageru. AKS podporuje vytváření fondů uzlů Arm64 a kombinaci uzlů architektury Intel a uzlů se správou prostředků v rámci jednoho clusteru. Architektura Arm64 poskytuje lepší poměr ceny a výkonu kvůli nižšímu využití energie a efektivnímu výpočetnímu výkonu. Tyto funkce můžou přinést lepší výkon s nižšími náklady.
(Cluster) Povolte automatické škálování clusteru, aby automaticky snížilo počet uzlů agentů v reakci na nadbytečnou kapacitu prostředků. Automatické snižování počtu uzlů ve vašem clusteru AKS vám umožní provozovat efektivní cluster, když je poptávka nízká, a škálovat nahoru, když se poptávka zvýší.
(Cluster) Povolení automatického zajištění uzlů pro automatizaci výběru konfigurace virtuálního počítače. Automatické zřizování uzlů zjednodušuje proces výběru SKU a na základě požadavků na zdroje nevyřízených podů rozhoduje o optimální konfiguraci virtuálního počítače pro spuštění úloh nejefektivnějším a nákladově nejvýhodnějším způsobem.
(Úloha) Pomocí HorizontalPodAutoscaler můžete upravit počet podů v nasazení v závislosti na využití procesoru nebo jiných metrikách. Automatické snižování počtu podů, když je poptávka nízká, a rozšiřování počtu podů, když poptávka vzroste, vede k nákladově efektivnějšímu provozu vaší úlohy.
(Zátěž) Použijte VerticalPodAutoscaler (preview) k optimálnímu přizpůsobení velikosti vašich podů a dynamickému nastavení požadavků a limitů na základě historického využití. Nastavením požadavků na prostředky a omezení kontejnerů pro každou úlohu uvolní VerticalPodAutoscaler procesor a paměť pro jiné pody a pomůže zajistit efektivní využití clusterů AKS.
(Cluster) Nakonfigurujte doplněk analýzy nákladů AKS. 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ů.

Efektivita provozu

Operační dokonalost se primárně zaměřuje na postupy vývoje, pozorovatelnosti a řízení vydání.

Principy návrhu efektivity provozu poskytují strategii návrhu vysoké úrovně pro dosažení těchto cílů pro provozní požadavky úlohy.

Kontrolní seznam návrhu úloh

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro provozní efektivitu pro definování procesů pozorovatelnosti, testování a nasazení. Informace o klíčových aspektech, které je třeba pochopit a implementovat, najdete v osvědčených postupech AKS a v průvodci provozními aktivitami pro den-2.

  • (Cluster) Implementujte přístup k nasazení infrastruktury jako kódu (IaC). Použijte deklarativní přístup založený na šablonách pomocí Bicepu, Terraformu nebo podobných nástrojů. Ujistěte se, že všechna nasazení jsou opakovatelná, trasovatelná a uložená v úložišti zdrojového kódu. Další informace najdete v úvodních průvodcích v dokumentaci produktu AKS.

  • (Cluster a úloha) Automatizujte nasazení infrastruktury a úloh. Použijte standardní softwarová řešení ke správě, integraci a automatizaci nasazení clusteru a úloh. Integrujte kanály nasazení se systémem správy zdrojového kódu a začleňte automatizované testy.

    Vytvořte automatizovaný proces, který vám pomůže zajistit, aby se clustery spouštěly s potřebnými konfiguracemi a nasazeními v rámci celého clusteru. Tento proces se obvykle provádí pomocí GitOps.

    Použijte opakovatelné a automatizované procesy nasazení pro vaši úlohu v rámci životního cyklu vývoje softwaru.

  • (Cluster a úloha) Implementujte strategii monitorování. Shromážděte protokoly a metriky pro monitorování stavu úlohy, identifikujte trendy v oblasti výkonu a spolehlivosti a vyřešte problémy. Projděte si osvědčené postupy pro monitorování Kubernetes pomocí služby Azure Monitor a doporučení Well-Architected pro návrh a vytvoření monitorovacího systému, abyste určili nejlepší strategii monitorování pro vaše úlohy.

    Povolte nastavení diagnostiky, abyste zajistili, že se protokolují interakce řídicí roviny nebo základního serveru api.

    Úloha by měla být navržená tak, aby generuje telemetrii, kterou je možné shromažďovat, což by také mělo zahrnovat stav aktivity a připravenosti.

    Zvažte agenty pro diagnostiku sítě využívající AI, jako je Container Network Insights Agent, jako doplněk vaší strategie monitorování AKS pouze pro čtení, když operátoři potřebují prošetřit občasné výpadky komunikace mezi pody a službami, problémy s DNS nebo ztrátu paketů. Tito agenti mohou pomocí popisů problémů v přirozeném jazyce korelovat telemetrii živého clusteru, síťových toků a hostitelské sítě v rámci jedné investigace, čímž se během incidentů snižuje potřeba ruční korelace logů a metrik. Nevýhodou je vyšší provozní složitost, proto je používejte spíše k doplnění zavedených runbooků, dotazů a upozornění než k nahrazení základních postupů monitorování.

  • (Cluster a úloha) Implementovat testování prostřednictvím produkčních strategií. Testování produkčních prostředí používá skutečná nasazení k ověření a měření chování a výkonu aplikace v produkčním prostředí. K identifikaci problémů se spolehlivostí aplikací nebo platforem využijte postupy pro přípravu chaosu, které cílí na Kubernetes.

    Azure Chaos Studio může pomoct simulovat chyby a aktivovat situace zotavení po havárii.

  • (Cluster a pracovní zátěže) Prosadit správu pracovních zátěží. Azure Policy pomáhá zajistit konzistentní soulad s organizačními standardy, automatizovat vynucení zásad a poskytuje centralizovanou viditelnost a kontrolu nad prostředky clusteru.

    Další informace o dostupných předdefinovaných zásadách pro AKS najdete v části Zásady Azure .

  • (Cluster a úloha) Pro kritické úlohy používejte nasazení typu blue-green na úrovni razítka. Přístup k nasazení typu blue-green na úrovni razítka může zvýšit důvěru při vydávání změn a umožňuje upgrady bez výpadků, protože je možné ověřit kompatibilitu s následnými závislostmi, jako jsou platforma Azure, poskytovatelé prostředků a moduly IaC.

    Kontrolery Kubernetes a ingress kontrolery podporují mnoho pokročilých vzorů nasazení pro zahrnutí do procesu vydávání verzí. Zvažte vzory, jako jsou modrá-zelená nasazení nebo kanárské verze.

  • (Klastr a pracovní zatížení) Udělat pracovní zátěže udržitelnějšími. Za účelem vytvoření udržitelné a cloudově efektivní pracovní zátěže je třeba spojit úsilí o optimalizaci nákladů, snižování 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.

    Informace o vytváření udržitelných a efektivních úloh AKS najdete v tématu Principy udržitelného softwarového inženýrství v AKS.

Doporučení pro konfiguraci

Recommendation Benefit
(Cluster) Zavést standardy konfigurace clusteru a podů pomocí zásad Azure pro AKS. Zásady Azure pro AKS vám můžou pomoct vynucovat a chránit clustery ve velkém měřítku centralizovaným a konzistentním způsobem. Pomocí zásad definujte oprávnění udělená podům a zajistěte dodržování zásad společnosti.
(Cluster) Nakonfigurujte přidělování statického bloku Azure CNI pro předvídatelné přidělení podsítě a vylepšenou správu IP adres v clusterech AKS.

Implementujte přidělování statických bloků, abyste zajistili předvídatelné přiřazení IP adres pro pody Kubernetes v rámci definovaných rozsahů podsítí a umožnili integraci se stávajícími zásadami zabezpečení sítě.
Nezbytné pro vývojové týmy, na kterých běží více clusterů AKS, potřebují předvídatelné přidělování IP adres pro integraci se stávajícími zásadami zabezpečení sítě a pravidly brány firewall. Vylepšuje efektivitu provozu prostřednictvím předvídatelných adresování sítě a zjednodušené správy IP adres.
(Pracovní zatížení) Použijte automatické škálování Kubernetes řízené událostmi (KEDA). KEDA umožňuje vašim aplikacím škálovat na základě událostí, jako je počet zpracovávaných událostí. Můžete si vybrat z bohatého katalogu více než 50 škálovacích nástrojů KEDA.
(Cluster) Operátor nástroje KAITO AI slouží k efektivnímu nasazení a správě modelu AI obsluhující úlohy. KAITO zjednodušuje nasazení a škálování modelu AI v Kubernetes a současně poskytuje optimalizovanou infrastrukturu pro úlohy odvozování strojového učení. Týmy pro datové vědy můžou nasazovat a škálovat velké jazykové modely nebo jiné modely AI v AKS pomocí KAITO, který automaticky zpracovává prostředky GPU, obsluhuje infrastrukturu a zásady škálování bez ruční konfigurace Kubernetes a snižuje provozní složitost.
(Cluster) Aktivujte AKS Automatic pro plně spravované prostředí Kubernetes s automatizovanou správou clusteru. AKS Automatic snižuje provozní režii pro správu clusterů Kubernetes tím, že automatizuje rutinní úlohy a zajišťuje optimální konfiguraci a stav zabezpečení. Vývojové týmy můžou nasazovat aplikace do AKS bez správy konfigurace, aktualizací nebo optimalizace clusteru, což jim umožní soustředit se na vývoj aplikací a zároveň zajistit, aby jejich infrastruktura Kubernetes automaticky dodržuje osvědčené postupy.

Efektivita výkonu

Efektivita výkonu se týká zachování uživatelského prostředí, i když se zvyšuje zatížení správou kapacity. Strategie zahrnuje škálování prostředků, identifikaci a optimalizaci potenciálních kritických bodů a optimalizaci výkonu ve špičce.

Principy návrhu efektivity výkonu poskytují strategii návrhu na vysoké úrovni pro dosažení těchto cílů kapacity s ohledem na očekávané využití.

Kontrolní seznam návrhu úloh

Zahajte strategii návrhu na základě kontrolního seznamu pro přezkum návrhu, zaměřeného na efektivitu výkonu, pro definování výchozí hodnoty na základě klíčových ukazatelů výkonu pro AKS.

  • (Cluster a pracovní zátěž) Plánování kapacity. Realizovat a opakovat podrobné cvičení kapacitního plánování, které zahrnuje SKU, nastavení automatického škálování, adresování IP a aspekty převzetí služeb při selhání.

    Po formalizaci plánu kapacity často aktualizujte plán tím, že průběžně sledujete využití prostředků clusteru.

  • (Cluster) Definovat strategii škálování Nakonfigurujte škálování, abyste zajistili efektivní úpravu prostředků tak, aby splňovaly požadavky úloh bez nadměrného využití nebo plýtvání. Pomocí funkcí AKS, jako je automatické škálování clusteru a HorizontalPodAutoscaler, můžete dynamicky splňovat potřeby vašich úloh s menším zatížením operací. Optimalizujte pracovní zátěž tak, aby efektivně fungovala a byla nasazena v kontejneru.

    Projděte si průvodce škálováním a dělením a seznamte se s různými aspekty konfigurace škálování.

  • (Cluster a úloha) Proveďte testování výkonu. Provádějte průběžné aktivity zátěžového testování, které zajišťují automatické škálování jak podu, tak i clusteru. Porovnejte výsledky s výkonnostními cíli a zavedenými směrnými plány.

  • (Cluster a úloha) Škálovat úlohy a toky nezávisle. Oddělit úlohy a toky do různých fondů uzlů, aby bylo možné nezávislé škálování. Postupujte podle pokynů v tématu Optimalizace návrhu úloh pomocí toků k identifikaci a stanovení priorit toků.

  • (Cluster) Optimalizujte překlad DNS. Využijte výhodu LocalDNS, který je automaticky povolen pomocí automatického zřizování uzlů. LocalDNS zlepšuje výkon snížením síťové režie a zrychlením zjišťování služeb pro aplikace mikroslužeb s vysokou mírou komunikace mezi službami. Místní ukládání do mezipaměti odstraňuje kritické body DNS tím, že snižuje externí dotazy DNS a poskytuje nepřetržitý překlad jmen i v případě výpadků nadřazených služeb DNS. Integrace automatického zabezpečení uzlů zaručuje optimální výkon sítě bez obětování schopností automatizace provozu.

Doporučení pro konfiguraci

Recommendation Benefit
(Cluster) Povolte automatické škálování clusteru , abyste automaticky upravili počet uzlů agentů v reakci na požadavky úloh.

Pomocí HorizontalPodAutoscaler můžete upravit počet podů v nasazení v závislosti na využití procesoru nebo jiných metrikách.
Možnost automatického vertikálního navýšení nebo snížení kapacity počtu uzlů a počtu podů v clusteru AKS umožňuje spustit efektivní a nákladově efektivní cluster.
(Cluster a úloha) Rozdělte pracovní zátěže do různých poolů uzlů a zvažte škálování poolů uzlů uživatelů. Na rozdíl od fondů systémových uzlů, které vždy vyžadují spuštěné uzly, umožňují fondy uzlů uživatelů škálovat nahoru nebo dolů.
(Úloha) Použitím pokročilých funkcí plánovače AKS implementovat pokročilé vyvažování prostředků pro úlohy, které je vyžadují. Při správě clusterů AKS často potřebujete izolovat týmy a úlohy. Pokročilé funkce, které plánovač Kubernetes poskytuje, umožňují řídit, které pody je možné naplánovat na určitých uzlech. Umožňují také řídit, jak mohou být multipod aplikace správně distribuovány napříč clusterem.
(Úloha) KeDA slouží k vytvoření smysluplné sady pravidel automatického škálování na základě signálů specifických pro vaši úlohu. 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 umožňuje aplikacím škálovat se na základě událostí, jako je počet zpráv ve frontě nebo délka prodlevy tématu.
(Cluster) Povolte režim vysoké škálovatelnosti Azure Monitor pro Službu Container Insights pro rozsáhlá nasazení Kubernetes se stovkami uzlů. Snižuje spotřebu prostředků při zachování pozorovatelnosti. Umožňuje monitorování a snižuje režii na prostředky agenta a zlepšuje výkon shromažďování dat. Tato optimalizace je užitečná pro podniková prostředí, na kterých běží stovky uzlů, kde standardní přístupy k monitorování můžou ovlivnit výkon clusteru a zvýšit náklady.

Zásady Azure

Azure poskytuje rozsáhlou sadu předdefinovaných zásad souvisejících s AKS, které se vztahují na prostředek Azure, jako jsou typické zásady Azure a doplněk Azure Policy pro Kubernetes a v rámci clusteru. Řada zásad prostředků Azure existuje v variantách Audit/Odepřít i Nasadit, pokud neexistuje. Kromě předdefinovaných definic Azure Policy můžete vytvořit vlastní zásady pro prostředek AKS i pro doplněk Azure Policy pro Kubernetes.

Některá doporučení v tomto článku je možné auditovat prostřednictvím služby Azure Policy. Můžete například zkontrolovat následující zásady clusteru:

  • Clustery mají nakonfigurované testy stavu připravenosti nebo živosti pro vaši specifikaci pod.
  • Microsoft Defender pro zásady založené na cloudu
  • Režim ověřování a zásady konfigurace, jako je ID Microsoft Entra, RBAC a zakázání místního ověřování
  • Zásady síťového přístupu k serveru API, včetně privátního clusteru.
  • Zásady konfigurace GitOps
  • Zásady nastavení diagnostiky
  • Omezení verzí AKS
  • Zabránit vyvolání příkazu

Můžete také zkontrolovat následující zásady clusteru a úloh:

  • Iniciativy zabezpečení podů clusteru Kubernetes pro úlohy založené na Linuxu
  • Zahrňte zásady schopností podů a kontejnerů, jako jsou AppArmor, sysctl, bezpečnostní limity, SELinux, seccomp, privilegované kontejnery a 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ů a kontejnerů, jako jsou hostitelská síť, port, povolené externí IP adresy, HTTPS a interní vyrovnávače zatížení.
  • Omezení nasazení oboru názvů
  • Omezení prostředků procesoru a paměti

Informace o zásadách správného řízení najdete v předdefinovaných definicích Azure Policy pro Kubernetes a další zásady, které by mohly ovlivnit zabezpečení výpočetní vrstvy.

Doporučení azure Advisoru

Azure Advisor je individuální cloudový konzultant, který vám pomůže postupovat podle osvědčených postupů pro optimalizaci nasazení Azure.

Další informace najdete v tématu Azure Advisor.

Příklad architektury

Základní architektura, která ukazuje klíčová doporučení: základní architektura AKS.

Zvažte následující články jako zdroje informací, které ukazují doporučení zvýrazněná v tomto článku.

S využitím následující dokumentace k produktu můžete vytvářet odborné znalosti implementace: