Tato referenční architektura ukazuje, jak Azure Arc rozšiřuje správu a konfiguraci clusteru Kubernetes napříč zákaznickými datacentry, hraničními umístěními a několika cloudovými prostředími.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Workflow
Architektura se skládá z následujících aspektů:
- Kubernetes s podporou Azure Arc Připojte a nakonfigurujte clustery Kubernetes uvnitř Azure nebo mimo Azure pomocí Kubernetes s podporou Azure Arc. Když je cluster Kubernetes připojený ke službě Azure Arc, přiřadí se mu ID Azure Resource Manageru a spravovaná identita.
- Azure Kubernetes Service. Hostujte clustery Kubernetes v Azure, abyste snížili složitost a provozní režii správy clusterů Kubernetes.
- Místní cluster Kubernetes Připojte clustery Kubernetes s certifikací CLOUD Native Computing Foundation (CNCF), které jsou hostované v místních cloudových prostředích nebo cloudových prostředích třetích stran.
- Azure Policy. Nasaďte a spravujte zásady pro clustery Kubernetes s podporou Arc.
- Azure Monitor Sledujte a monitorujte clustery Kubernetes s podporou arc.
Komponenty
- Azure Arc je most, který rozšiřuje platformu Azure a umožňuje vytvářet aplikace a služby, které se můžou spouštět napříč datovými centry, na hraničních zařízeních a v prostředích s více cloudy.
- Azure Kubernetes Service (AKS) je spravovaná služba pro nasazování a škálování clusterů Kubernetes.
- Azure Policy umožňuje dosáhnout dodržování předpisů v cloudu v reálném čase ve velkém měřítku s konzistentními zásadami správného řízení prostředků.
- Azure Monitor poskytuje komplexní pozorovatelnost pro vaše aplikace, infrastrukturu a síť.
Podrobnosti scénáře
Azure Arc můžete použít k registraci clusterů Kubernetes hostovaných mimo Microsoft Azure. Tyto clustery pak můžete spravovat pomocí nástrojů Azure spolu s clustery hostovanými ve službě Azure Kubernetes Service (AKS).
Potenciální případy použití
Obvyklá využití pro tuto architekturu:
- Správa místních clusterů a clusterů Kubernetes hostovaných v AKS pro inventář, seskupování a označování
- Použití služby Azure Monitor k monitorování clusterů Kubernetes napříč hybridními prostředími
- Použití Azure Policy k nasazení a vynucování zásad pro clustery Kubernetes napříč hybridními prostředími
- Použití Azure Policy k nasazení a vynucování GitOps
Doporučení
Následující části nabízejí doporučení, která platí pro většinu scénářů. Microsoft doporučuje, abyste je sledovali, pokud nemáte požadavek, který je přepíše.
Registrace clusteru
Můžete zaregistrovat libovolný aktivní cluster CNCF Kubernetes. K nasazení agentů Kubernetes s podporou arc potřebujete soubor kubeconfig pro přístup ke clusteru a roli správce clusteru v clusteru. K provádění úloh registrace clusteru použijete rozhraní příkazového řádku Azure (CLI). Uživatel nebo instanční objekt, který používáte pro příkazy az login a az connectedk8s connect , vyžaduje oprávnění ke čtení a zápisu u typu prostředku Microsoft.Kubernetes/connectedClusters. Cluster Kubernetes – Role onboardingu Azure Arc má tato oprávnění a dá se použít pro přiřazení rolí na instančním objektu uživatele nebo instančním objektu. Helm 3 se vyžaduje pro onboarding clusteru, který používá rozšíření Connectedk8s. K instalaci rozšíření rozhraní příkazového řádku Kubernetes s podporou Azure Arc se vyžaduje Azure CLI verze 2.3 nebo novější.
Agenti Azure Arc pro Kubernetes
Kubernetes s podporou Azure Arc se skládá z několika agentů (označovaných také jako operátory), které běží v clusteru nasazeného do oboru názvů azure-arc:
- deployment.apps/config-agent. Sleduje připojený cluster pro prostředky konfigurace správy zdrojového kódu, které se použijí v clusteru, a aktualizuje stav dodržování předpisů.
- deployment.apps/controller-manager. Operátor operátorů, který orchestruje interakce mezi komponentami Azure Arc.
- deployment.apps/metrics-agent. Shromažďuje metriky z jiných agentů Arc, aby se zajistilo, že tito agenti vykazují optimální výkon.
- deployment.apps/cluster-metadata-operator. Shromažďuje metadata clusteru, verzi clusteru, počet uzlů a verzi agenta Azure Arc.
- deployment.apps/resource-sync-agent. Synchronizuje dříve uvedená metadata clusteru do Azure.
- deployment.apps/clusteridentityoperator. Udržuje certifikát IDENTITY spravované služby (MSI), který používají jiní agenti ke komunikaci s Azure.
- deployment.apps/flux-logs-agent. Shromažďuje protokoly z operátorů flux nasazených jako součást konfigurace správy zdrojového kódu.
- deployment.apps/extension-manager. Nainstaluje a spravuje životní cyklus rozšiřujících grafů Helm.
- deployment.apps/kube-azure-ad-proxy. Používá se k ověřování požadavků odesílaných do clusteru pomocí připojení ke clusteru.
- deployment.apps/clusterconnect-agent. Reverzní proxy agent, který umožňuje funkci připojení ke clusteru poskytnout přístup k serveru api clusteru. Je to volitelná komponenta, která je nasazená jenom v případě, že je v clusteru povolená funkce připojení clusteru.
- deployment.apps/guard. Server webhooku pro ověřování a autorizaci, který se používá pro řízení přístupu na základě role microsoft Entra (RBAC). Je to volitelná komponenta, která je nasazená jenom v případě, že je v clusteru povolená funkce azure-rbac.
Další informace najdete v tématu Připojení clusteru Kubernetes s podporou Azure Arc.
Monitorování clusterů pomocí přehledů kontejnerů služby Azure Monitor
Monitorování kontejnerů je důležité. Azure Monitor Container Insights poskytuje bohaté prostředí pro monitorování pro clustery modulu AKS a AKS. Přehledy kontejnerů služby Azure Monitor můžete také nakonfigurovat tak, aby monitorovali clustery Kubernetes s podporou Služby Azure Arc, které jsou hostované mimo Azure. To poskytuje komplexní monitorování clusterů Kubernetes napříč Azure, místními a cloudovými prostředími třetích stran.
Azure Monitor Container Insights vám může poskytnout přehled o výkonu tím, že shromažďuje metriky paměti a procesoru z kontrolerů, uzlů a kontejnerů, metrik, které jsou k dispozici v Kubernetes prostřednictvím programovacího rozhraní aplikace Metriky (API). Shromažďují se také protokoly kontejnerů. Po povolení monitorování z clusterů Kubernetes se metriky a protokoly automaticky shromažďují pomocí kontejnerizované verze agenta Log Analytics. Metriky se zapisují do úložiště metrik a data protokolů se zapisují do úložiště protokolů přidružených k vašemu pracovnímu prostoru služby Log Analytics. Další informace o přehledech kontejnerů služby Azure Monitor najdete v přehledu přehledů kontejnerů služby Azure Monitor.
Přehledy kontejnerů služby Azure Monitor můžete povolit pro jedno nebo více nasazení Kubernetes pomocí skriptu PowerShellu nebo skriptu Bash.
Pokud chcete povolit monitorování pro clustery Kubernetes s podporou Arc, přečtěte si téma Povolení monitorování clusteru Kubernetes s podporou služby Azure Arc.
Použití Azure Policy k povolení nasazení aplikací založených na GitOps
Pomocí azure Policy vynucujte, aby každý prostředek Microsoft.Kubernetes/connectedclusters s podporou GitOps nebo prostředek Microsoft.ContainerService/managedClusters používal konkrétní prostředek Microsoft.KubernetesConfiguration/fluxConfigurations. Můžete například použít základní konfiguraci na jeden nebo více clusterů nebo nasadit konkrétní aplikace do více clusterů. Pokud chcete použít Azure Policy, vyberte definici z předdefinovaných definic Azure Policy pro Kubernetes s podporou Azure Arc a pak vytvořte přiřazení zásad.
Při vytváření přiřazení zásad nastavte obor na skupinu prostředků Azure nebo předplatné. Nastavte také parametry pro vytvořenou fluxConfiguration . Po vytvoření přiřazení modul zásad identifikuje všechny připojenéclusterové nebo spravované prostředkyCluster , které jsou umístěné v oboru, a pak na každý z nich použije fluxConfiguration .
Pokud pro každý cluster používáte více zdrojových úložišť (například jedno úložiště pro centrálního operátora IT/clusteru a další úložiště pro aplikační týmy), aktivujte je pomocí více přiřazení zásad a nakonfigurujte každé přiřazení zásad tak, aby používalo jiné zdrojové úložiště.
Další informace najdete v tématu Nasazení aplikací konzistentně ve velkém měřítku pomocí konfigurací Flux v2 a Azure Policy.
Nasazení aplikací pomocí GitOps
GitOps je postup deklarování požadovaného stavu konfigurace Kubernetes (nasazení, obory názvů atd.) ve zdrojovém úložišti, jako je úložiště Git nebo Helm, Buckets nebo Azure Blob Storage. Následuje dotazování a nasazení těchto konfigurací na základě vyžádání do clusteru pomocí operátoru.
Připojení mezi clusterem a jedním nebo více zdrojovými úložišti je povolené nasazením rozšíření microsoft.flux do clusteru. Vlastnosti prostředku fluxConfiguration představují, kde a jak by prostředky Kubernetes měly proudit ze zdrojového úložiště do vašeho clusteru. Data fluxConfiguration se ukládají zašifrovaná neaktivní uložená data v databázi Azure Cosmos DB, aby byla zajištěna důvěrnost dat.
Agent flux-config, který běží ve vašem clusteru, zodpovídá za sledování nových nebo aktualizovaných prostředků rozšíření fluxConfiguration na prostředku Kubernetes s podporou Azure Arc, za nasazování aplikací ze zdrojového úložiště a za šíření všech aktualizací provedených do fluxConfiguration. K dosažení víceklientské architektury můžete dokonce vytvořit více prostředků fluxConfiguration pomocí oboru názvů ve stejném clusteru Kubernetes s podporou Azure Arc.
Zdrojové úložiště může obsahovat všechny platné prostředky Kubernetes, včetně oborů názvů, objektů ConfigMap, nasazení a daemonSets. Může také obsahovat charty Helm pro nasazování aplikací. Mezi běžné scénáře zdrojového úložiště patří definování základní konfigurace pro vaši organizaci, která může zahrnovat běžné role řízení přístupu na základě role (RBAC) a vazby, agenty monitorování, agenty protokolování a služby na úrovni clusteru.
Můžete také spravovat větší kolekci clusterů nasazených v heterogenních prostředích. Můžete mít například jedno úložiště, které definuje základní konfiguraci pro vaši organizaci, a pak ho použít na více clusterů Kubernetes současně. Aplikace můžete také nasadit do clusteru z více zdrojových úložišť.
Další informace najdete v tématu Nasazení aplikací pomocí GitOps s flux v2.
Topologie, síť a směrování
Aby mohli agenti Azure Arc fungovat, vyžadují následující protokoly, porty nebo odchozí adresy URL:
Koncový bod (DNS) | Popis |
---|---|
https://management.azure.com:443 |
Vyžaduje se, aby se agent připojil k Azure a zaregistroval cluster. |
https://[region].dp.kubernetesconfiguration.azure.com:443 |
Koncový bod roviny dat pro agenta pro nabízení stavu a načtení informací o konfiguraci, kde [oblast] představuje oblast Azure, která je hostitelem instance AKS. |
https://docker.io:443 |
Vyžaduje se pro vyžádání imagí kontejneru. |
https://github.com:443 , git://github.com:9418 |
Ukázková úložiště GitOps jsou hostovaná na GitHubu. Agent konfigurace vyžaduje připojení k zadanému koncovému bodu Gitu. |
https://login.microsoftonline.com:443 |
Vyžaduje se k načtení a aktualizaci tokenů Azure Resource Manageru. |
https://azurearcfork8s.azurecr.io:443 |
Vyžaduje se pro vyžádání imagí kontejnerů pro agenty Azure Arc. |
Úplný seznam adres URL napříč službami Azure Arc najdete v požadavcích na síť Azure Arc.
Důležité informace
Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.
Spolehlivost
Spolehlivost zajišťuje, že vaše aplikace může splňovat závazky, které uděláte pro vaše zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti.
- Ve většině případů by umístění, které vyberete při vytváření instalačního skriptu, mělo být oblast Azure, která je geograficky nejblíže místním prostředkům. Zbývající data se ukládají v zeměpisné oblasti Azure, která obsahuje zadaná oblast, což může mít vliv na vaši volbu oblasti, pokud máte požadavky na rezidenci dat. Pokud výpadek ovlivní oblast Azure, ke které je váš počítač připojený, nemá výpadek vliv na připojený počítač, ale operace správy, které používají Azure, nemusí být dokončené. Pokud dojde k regionálnímu výpadku, je nejlepší zajistit odolnost, pokud máte více umístění, která poskytují geograficky redundantní službu, abyste počítače v každém umístění připojili k jiné oblasti Azure. Dostupné oblasti najdete v podporovaných oblastech pro Kubernetes s podporou služby Azure Arc.
- Měli byste zajistit, aby služby, na které odkazuje oddíl Architektura , byly podporovány v oblasti, ve které je nasazená služba Azure Arc.
Zabezpečení
Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.
- Azure RBAC můžete použít ke správě přístupu k Kubernetes s podporou Azure Arc napříč Azure a místními prostředími, která používají identity Microsoft Entra. Další informace najdete v tématu Použití Azure RBAC pro autorizaci Kubernetes.
- Microsoft doporučuje použít instanční objekt s omezenými oprávněními k onboardingu clusterů Kubernetes do služby Azure Arc. Tento postup je užitečný v kanálech CI/CD, jako jsou Azure Pipelines a GitHub Actions. Další informace najdete v tématu Vytvoření instančního objektu s podporou Azure Arc.
- Pro zjednodušení správy instančního objektu můžete použít spravované identity v AKS. Clustery ale musí být vytvořené pomocí spravované identity a stávající clustery (včetně Azure a místních clusterů) se nedají migrovat do spravovaných identit. Další informace najdete v tématu Použití spravovaných identit ve službě Azure Kubernetes Service.
Optimalizace nákladů
Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.
Obecné aspekty nákladů jsou popsány v části Principy optimalizace nákladů v architektuře Microsoft Azure.
Provozní dokonalost
Efektivita provozu zahrnuje provozní procesy, které nasazují aplikaci a udržují ji spuštěnou v produkčním prostředí. Další informace najdete v tématu Přehled pilíře efektivity provozu.
- Než nakonfigurujete clustery Kubernetes s podporou Služby Azure Arc, projděte si limity předplatného Azure Resource Manageru a omezení skupin prostředků a naplánujte počet clusterů.
- K instalaci a správě životního cyklu aplikací Kubernetes použijte Helm, opensourcový nástroj pro balení. Podobně jako správci balíčků pro Linux, jako je APT a Yum, používáte Helm ke správě grafů Kubernetes, což jsou balíčky předkonfigurovaných prostředků Kubernetes.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Pieter de Bruin | Vedoucí programový manažer
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- Dokumentace ke službě Azure Arc
- Dokumentace k Kubernetes s podporou Azure Arc
- Dokumentace ke službě Azure Kubernetes Service
- Dokumentace k Azure Policy
- Dokumentace k Azure Monitor
- Připojení clusteru Kubernetes s podporou Azure Arc
Související prostředky
Související hybridní pokyny:
Související architektury: