Freigeben über


Azure Arc-Hybridverwaltung und -bereitstellung für Kubernetes-Cluster

Azure Arc
Azure Kubernetes Service (AKS)
Azure Monitor
Azure Policy
Rollenbasierte Zugriffssteuerung in Azure

Diese Referenzarchitektur beschreibt, wie Azure Arc kubernetes Clusterverwaltung und -konfiguration auf Kundendatencenter, Edgestandorte und mehrere Cloudumgebungen erweitert.

Architektur

Diagramm, das eine Azure Arc für Kubernetes-Topologie zeigt.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Arbeitsablauf

Der folgende Workflow entspricht dem vorherigen Diagramm:

  • Azure Arc-fähige Kubernetes: Anfügen und Konfigurieren von Kubernetes-Clustern innerhalb oder außerhalb von Azure mithilfe von Azure Arc-fähigen Kubernetes. Wenn Azure Arc ein Kubernetes-Cluster angefügt wird, wird ihm eine Azure Resource Manager-ID sowie eine verwaltete Identität zugewiesen.

  • Azure Kubernetes Service (AKS): Hosten Sie Kubernetes-Cluster in Azure, um die Komplexität und den betriebstechnischen Aufwand der Kubernetes-Clusterverwaltung zu reduzieren.

  • Lokaler Kubernetes-Cluster: Fügen Sie Cloud Native Computing Foundation (CNCF)-zertifizierte Kubernetes-Cluster an, die in lokalen oder nicht von Microsoft stammenden Cloudumgebungen gehostet werden.

  • Azure-Richtlinie: Bereitstellen und Verwalten von Richtlinien für Azure Arc-fähige Kubernetes-Cluster.

  • Azure Monitor: Beobachten und überwachen Sie Azure Arc-fähige Kubernetes-Cluster.

Komponenten

  • Azure Arc erweitert die Azure-Plattform, die es ermöglicht, Anwendungen und Dienste zu erstellen, die über Rechenzentren hinweg, am Edge und in Multicloud-Umgebungen ausgeführt werden können.

  • AKS ist ein verwalteter Dienst zum Bereitstellen und Skalieren von Kubernetes-Clustern.

  • Azure Policy ermöglicht es, Cloudcompliance in Echtzeit im großen Stil mit konsistenter Ressourcengovernance zu erreichen.

  • Azure Monitor bietet End-to-End-Einblicke für Ihre Anwendungen, Ihre Infrastruktur und Ihr Netzwerk.

Szenariodetails

Sie können Azure Arc verwenden, um Kubernetes-Cluster zu registrieren, die außerhalb von Microsoft Azure gehostet werden. Anschließend können Sie Azure-Tools verwenden, um diese Cluster und von AKS gehosteten Cluster zu verwalten.

Mögliche Anwendungsfälle

Typische Einsatzmöglichkeiten für diese Architektur sind:

  • Verwalten von Bestand, Gruppierung und Tagging für lokale Kubernetes-Cluster und von AKS gehostete Cluster.

  • Verwenden von Azure Monitor zum Überwachen von Kubernetes-Clustern in Hybridumgebungen

  • Verwenden von Azure-Richtlinien zum Bereitstellen und Erzwingen von Richtlinien für Kubernetes-Cluster in hybriden Umgebungen.

  • Verwenden von Azure-Richtlinien zum Bereitstellen und Erzwingen von GitOps.

  • Maximieren Sie Ihre lokale Grafikverarbeitungseinheit (GPU), indem Sie Azure Machine Learning-Workflows trainieren und bereitstellen.

  • Verwenden des verwalteten Azure Monitor-Diensts für Prometheus und Managed Grafana zum Überwachen und Visualisieren von Kubernetes-Workloads.

Empfehlungen

Sie können die folgenden Empfehlungen auf die meisten Szenarien anwenden. Sofern Sie keine besonderen Anforderungen haben, die Vorrang haben, sollten Sie diese Empfehlungen befolgen.

Clusterregistrierung

Sie können jeden aktiven CNCF-Kubernetes-Cluster registrieren. Sie benötigen eine kubeconfig Datei, um auf den Cluster und eine Clusteradministratorrolle auf dem Cluster zuzugreifen, um Azure Arc-fähige Kubernetes-Agents bereitzustellen. Verwenden Sie die Azure CLI, um Clusterregistrierungsaufgaben auszuführen. Der Benutzer oder Dienstprinzipal, den Sie für die und az connectedk8s connect die az login Befehle verwenden, erfordert Lese- und Schreibberechtigungen für den Microsoft.Kubernetes/connectedClusters Ressourcentyp. Die Rolle „Kubernetes-Cluster – Azure Arc-Onboarding“ verfügt über diese Berechtigungen und kann für Rollenzuweisungen für den Benutzer- oder Dientsprinzipal verwendet werden. Helm 3 ist erforderlich, um den Cluster zu integrieren, der die connectedk8s Erweiterung verwendet. Die Azure CLI-Version 2.3 oder höher ist erforderlich, um die Azure Arc-fähigen Kubernetes CLI-Erweiterungen zu installieren.

Azure Arc-Agents für Kubernetes

Azure Arc-fähige Kubernetes besteht aus einigen Agents (oder Operatoren), die im Cluster ausgeführt werden, der azure-arc im Namespace bereitgestellt wird:

  • Der deployment.apps/config-agent verbundene Cluster wird auf Konfigurationsressourcen der Quellcodeverwaltung überwacht, die auf den Cluster angewendet werden, und aktualisiert den Compliancestatus.

  • Dies deployment.apps/controller-manager ist ein Operator von Operatoren, die Interaktionen zwischen Azure Arc-Komponenten orchestriert.

  • Die deployment.apps/metrics-agent erfasst Metriken von anderen Azure Arc-Agents, um sicherzustellen, dass diese Agents optimal ausgeführt werden.

  • Die deployment.apps/cluster-metadata-operator Sammlung von Clustermetadaten, einschließlich der Clusterversion, der Knotenanzahl und der Azure Arc-Agent-Version.

  • Die deployment.apps/resource-sync-agent zuvor erwähnten Clustermetadaten werden mit Azure synchronisiert.

  • Das deployment.apps/clusteridentityoperator verwaltete Dienstidentitätszertifikat, das von anderen Agents für die Kommunikation mit Azure verwendet wird.

  • Die deployment.apps/flux-logs-agent Protokolle werden von den Flussoperatoren gesammelt, die als Teil der Quellcodeverwaltungskonfiguration bereitgestellt werden.

  • Die deployment.apps/extension-manager Installationen und Verwalten des Lebenszyklus von Erweiterungs-Helm-Diagrammen.

  • Die Verarbeitet die deployment.apps/kube-aad-proxy Authentifizierung für Anforderungen, die über die AKS-Clusterverbindungsfunktion an den Cluster gesendet werden.

  • Dies deployment.apps/clusterconnect-agent ist ein Reverseproxy-Agent, mit dem das Clusterverbindungsfeature Zugriff auf den API-Server des Clusters ermöglicht. Es handelt sich um eine optionale Komponente, die nur dann bereitgestellt wird, wenn das Cluster Connect-Feature im Cluster aktiviert ist.

  • Dies deployment.apps/guard ist ein Authentifizierungs- und Autorisierungswebhook-Server, der für die rollenbasierte Zugriffssteuerung (RBAC) von Microsoft Entra verwendet wird. Es handelt sich um eine optionale Komponente, die nur bereitgestellt wird, wenn Azure RBAC im Cluster aktiviert ist.

  • Die deployment.apps/extension-events-collector Protokolle im Zusammenhang mit der Lebenszyklusverwaltung von Erweiterungen werden gesammelt. Sie aggregiert diese Protokolle in Ereignissen, die den einzelnen Vorgängen entsprechen, z. B. "Erstellen", "Upgrade" und "Löschen".  

  • Die deployment.apps/logcollector Erfasst Plattform-Telemetrie, um die Betriebliche Integrität der Plattform zu gewährleisten.

Weitere Informationen finden Sie unter Verbinden eines vorhandenen Kubernetes-Clusters mit Azure Arc.

Überwachen von Clustern mithilfe von Azure Monitor-Containereinblicken

Die Überwachung Ihrer Container ist von entscheidender Bedeutung. Azure Monitor-Containereinblicke bieten robuste Überwachungsfunktionen für AKS- und AKS-Modulcluster. Sie können auch Azure Monitor-Containereinblicke konfigurieren, um Azure Arc-fähige Kubernetes-Cluster zu überwachen, die außerhalb von Azure gehostet werden. Diese Konfiguration bietet umfassende Überwachung Ihrer Kubernetes-Cluster in Azure, lokal und in Nicht-Microsoft-Cloudumgebungen.

Azure Monitor-Containereinblicke bieten Eine Leistungstransparenz, indem Speicher- und Prozessormetriken von Controllern, Knoten und Containern gesammelt werden. Diese Metriken sind in Kubernetes über die Metrik-API verfügbar. Auch Containerprotokolle werden erfasst. Nachdem Sie die Überwachung von Kubernetes-Clustern aktiviert haben, sammelt eine containerisierte Version des Log Analytics-Agents automatisch Metriken und Protokolle. Metriken werden in den Metrikspeicher geschrieben, und Protokolldaten werden in den Protokollspeicher geschrieben, der Ihrem Log Analytics-Arbeitsbereich zugeordnet ist. Weitere Informationen finden Sie unter Azure Monitor-Features für die Kubernetes-Überwachung.

Sie können Azure Monitor-Containereinblicke für eine oder mehrere Bereitstellungen von Kubernetes mithilfe eines PowerShell-Skripts oder eines Bash-Skripts aktivieren.

Weitere Informationen finden Sie unter Aktivieren der Überwachung für Kubernetes-Cluster.

Verwenden von Azure Policy zum Aktivieren der GitOps-basierten Anwendungsbereitstellung

Verwenden Sie Azure-Richtlinie, um sicherzustellen, dass jede gitOps-fähige Microsoft.Kubernetes/connectedclusters Ressource oder Microsoft.ContainerService/managedClusters Ressource darauf spezifisch Microsoft.KubernetesConfiguration/fluxConfigurations angewendet wurde. Beispielsweise können Sie eine Baselinekonfiguration auf einen oder mehrere Cluster anwenden oder bestimmte Anwendungen auf mehreren Clustern bereitstellen. Um Azure-Richtlinie zu verwenden, wählen Sie eine Definition aus den integrierten Azure-Richtliniendefinitionen für Azure Arc-fähige Kubernetes aus, und erstellen Sie dann eine Richtlinienzuweisung. Legen Sie beim Erstellen der Richtlinienzuweisung den Umfang auf eine Azure-Ressourcengruppe oder ein Abonnement fest. Legen Sie außerdem die Parameter für die fluxConfiguration erstellte Datei fest. Wenn die Zuordnung erstellt wird, identifiziert das Azure-Richtlinienmodul alle connectedCluster Ressourcen oder managedCluster Ressourcen, die sich im Bereich befinden, und wendet fluxConfiguration dies dann auf jede Ressource an.

Wenn Sie für jeden Cluster mehrere Quellrepositorys verwenden, z. B. ein Repository für den zentralen IT- oder Clusteroperator und andere Repositorys für Anwendungsteams, aktivieren Sie dieses Feature mithilfe mehrerer Richtlinienzuweisungen, und konfigurieren Sie jede Richtlinienzuweisung für die Verwendung eines anderen Quellrepositorys.

Weitere Informationen finden Sie unter Bereitstellen von Anwendungen im großen Maßstab mithilfe von Flux v2-Konfigurationen und Azure-Richtlinien.

Bereitstellen von Anwendungen mithilfe von GitOps

GitOps ist die Praxis, den gewünschten Zustand von Kubernetes-Konfigurationen wie Bereitstellungen und Namespaces in einem Quell-Repository zu definieren. Dieses Repository kann ein Git- oder Helm-Repository, Buckets oder Azure Blob Storage sein. Auf diesen Prozess folgt eine Abruf- und Pull-basierte Bereitstellung dieser Konfigurationen für den Cluster mithilfe eines Operators.

Die Verbindung zwischen Ihrem Cluster und einem oder mehreren Quellrepositorys wird durch Bereitstellen der microsoft.flux Erweiterung in Ihrem Cluster aktiviert. Die fluxConfiguration Ressourceneigenschaften stellen dar, wo und wie Kubernetes-Ressourcen vom Quell-Repository zu Ihrem Cluster fließen sollen. Die fluxConfiguration Ruhedaten werden in einer Azure Cosmos DB-Datenbank verschlüsselt gespeichert, um die Vertraulichkeit der Daten sicherzustellen.

Der flux-config Agent, der in Ihrem Cluster ausgeführt wird, überwacht neue oder aktualisierte fluxConfiguration Erweiterungsressourcen in der Azure Arc-fähigen Kubernetes-Ressource, stellt Anwendungen aus dem Quell-Repository bereit und verteilt alle Aktualisierungen, die an die fluxConfigurationRessource vorgenommen werden. Sie können mehrere fluxConfiguration Ressourcen erstellen, indem Sie den namespace Bereich auf demselben Azure Arc-fähigen Kubernetes-Cluster verwenden, um mehrinstanzenfähig zu werden.

Das Quell-Repository kann gültige Kubernetes-Ressourcen einschließlich Namespaces, ConfigMaps, Bereitstellungen und DaemonSets enthalten. Es kann auch Helm-Charts für die Bereitstellung von Anwendungen enthalten. Häufige Quell-Repositoryszenarien umfassen die Definition einer Basiskonfiguration für Ihre Organisation, die allgemeine RBAC-Rollen und -Bindungen, Überwachungs-Agents, Protokollierungs-Agents und clusterweite Dienste umfassen kann.

Sie können auch eine größere Sammlung von Clustern verwalten, die in heterogenen Umgebungen bereitgestellt werden können. Sie können z. B. über ein Repository verfügen, das die Basiskonfiguration für Ihre Organisation definiert, und diese Konfiguration dann gleichzeitig auf mehrere Kubernetes-Cluster anwenden. Sie können Anwendungen auch aus mehreren Quell-Repositorys in einem Cluster bereitstellen.

Weitere Informationen finden Sie unter Bereitstellen von Anwendungen mithilfe von GitOps mit Flux v2.

Ausführen von Maschinellem Lernen

In Machine Learning können Sie einen AKS (oder Azure Arc-fähigen Kubernetes)-Cluster als Computeziel für Ihre maschinellen Lernprozesse auswählen. Mit dieser Funktion können Sie Machine Learning-Modelle in Ihrer eigenen, selbst gehosteten (oder multicloud)-Infrastruktur trainieren oder bereitstellen. Mit diesem Ansatz können Sie Ihre lokalen Investitionen auf GPUs mit der einfachen Verwaltung kombinieren, die Machine Learning in der Cloud bereitstellt.

Überwachen von Kubernetes-Workloads mit verwaltetem Prometheus und Grafana

Azure Monitor bietet einen verwalteten Dienst für Prometheus- und Grafana-Bereitstellungen, sodass Sie diese beliebten Kubernetes-Überwachungstools nutzen können. Mit diesem verwalteten Dienst können Sie diese Tools verwenden, ohne die Bereitstellungen selbst verwalten und aktualisieren zu müssen. Verwenden Sie zum Analysieren der Prometheus-Metriken den Metrik-Explorer mit PromQL.

Topologie, Netzwerk und Routing

Azure Arc-Agents erfordern die folgenden Protokolle, Ports und ausgehenden URLs, um zu funktionieren.

Endpunkt (DNS) BESCHREIBUNG
https://management.azure.com:443 Erforderlich, damit der Agent eine Verbindung mit Azure herstellen und den Cluster registrieren kann.
https://[region].dp.kubernetesconfiguration.azure.com:443 Datenebenen-Endpunkt für den Agent, um den Status zu pushen und Konfigurationsinformationen abzurufen, wobei [region] die Azure-Region darstellt, in der die AKS-Instanz gehostet wird.
https://docker.io:443 Erforderlich zum Pullen von Containerimages.
https://github.com:443, git://github.com:9418 Beispiel-GitOps-Repositorys werden auf GitHub gehostet. Der Konfigurations-Agent erfordert eine Verbindung mit dem von Ihnen angegebenen Git-Endpunkt.
https://login.microsoftonline.com:443, https://<region>.login.microsoft.comlogin.windows.net Erforderlich zum Abrufen und Aktualisieren von Azure Resource Manager-Token.
https://mcr.microsoft.com:443 https://*.data.mcr.microsoft.com:443 Erforderlich zum Pullen von Containerimages für Azure Arc-Agents.

Eine vollständige Liste der URLs für Azure Arc-Dienste finden Sie unter Azure Arc-Netzwerkanforderungen.

Überlegungen

Diese Überlegungen bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit trägt dazu bei, dass Ihre Anwendung die Verpflichtungen erfüllen kann, die Sie für Ihre Kunden vornehmen. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für Zuverlässigkeit.

  • In den meisten Szenarien sollte der Speicherort, den Sie beim Erstellen des Installationsskripts auswählen, der Azure-Region entspricht, die ihren lokalen Ressourcen geografisch am nächsten kommt. Die restlichen Daten werden in der Azure-Geografie gespeichert, die die von Ihnen angegebene Region enthält. Dieses Detail kann sich auf Die Wahl der Region auswirken, wenn Sie über Anforderungen für die Datenhaltung verfügen. Wenn ein Ausfall in der Azure-Region auftritt, mit der Ihr Computer verbunden ist, wirkt sich der Ausfall nicht auf den verbundenen Computer aus. Allerdings können Verwaltungsvorgänge, für die Azure genutzt wird, möglicherweise nicht vollständig ausgeführt werden. Wenn Sie über mehrere Standorte verfügen, die einen geografisch redundanten Dienst bereitstellen, verbinden Sie die Computer an jedem Standort mit einer anderen Azure-Region. Diese Vorgehensweise verbessert die Resilienz, wenn ein regionaler Ausfall auftritt. Weitere Informationen finden Sie unter "Unterstützte Regionen" für Azure Arc-fähige Kubernetes.

  • Sie sollten sicherstellen, dass die Dienste in Ihrer Lösung in der Region unterstützt werden, in der Azure Arc bereitgestellt wird.

Sicherheit

Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für sicherheitsrelevante.

  • Mit der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) können Sie den Zugriff auf Azure Arc-fähige Kubernetes-Versionen in Azure-Umgebungen und lokalen Umgebungen mit Microsoft Entra-Identitäten verwalten. Weitere Informationen finden Sie unter Verwenden von Azure RBAC für die Kubernetes-Autorisierung.

  • Microsoft empfiehlt, einen Dienstprinzipal zu verwenden, der eingeschränkte Berechtigungen zum Onboarding von Kubernetes-Clustern in Azure Arc hat. Diese Vorgehensweise ist nützlich bei kontinuierlicher Integration und kontinuierlichen Übermittlungspipelinen wie Azure-Pipelines und GitHub-Aktionen. Weitere Informationen finden Sie unter Erstellen eines Azure Arc-fähigen Onboarding-Dienstprinzipals.

  • Um die Dienstprinzipalverwaltung zu vereinfachen, können Sie verwaltete Identitäten in AKS verwenden. Cluster müssen jedoch mithilfe der verwalteten Identität erstellt werden. Die vorhandenen Cluster, die Azure- und lokale Cluster enthalten, können nicht zu verwalteten Identitäten migriert werden. Weitere Informationen finden Sie unter Verwenden einer verwalteten Identität in AKS.

Kostenoptimierung

Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Prüfliste für die Überprüfung der Kostenoptimierung.

Allgemeine Kostenüberlegungen finden Sie in den Entwurfsprinzipien für die Kostenoptimierung.

Operative Exzellenz

Operational Excellence deckt die Betriebsprozesse ab, mit denen eine Anwendung bereitgestellt und in der Produktion ausgeführt wird. Weitere Informationen finden Sie unter Prüfliste für die Überprüfung von Operational Excellence.

  • Bevor Sie Ihre Azure Arc-fähigen Kubernetes-Cluster konfigurieren, überprüfen Sie die Azure Resource Manager-Abonnementbeschränkungen und Ressourcengruppenbeschränkungen , um die Anzahl der Cluster zu planen.

  • Verwenden Sie Helm, bei dem es sich um ein Open Source-Pakettool handelt, um die Kubernetes-Anwendungslebenszyklus zu installieren und zu verwalten. Ähnlich wie Linux-Paketmanager wie APT und Yum verwenden Sie Helm zum Verwalten von Kubernetes-Diagrammen, bei denen es sich um Pakete vorkonfigurierte Kubernetes-Ressourcen handelt.

Beitragende

Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautor:

Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte

Verwandte Hybridleitfäden:

Verwandte Architekturen: