Freigeben über


Azure Kubernetes Service (AKS) Baseline Architecture for AKS on Azure Local

Azure Kubernetes Service (AKS)
Azure Lokal
Azure Arc

In diesem Szenario wird veranschaulicht, wie Sie eine Basisarchitektur für Microsoft Azure Kubernetes Service (AKS) entwerfen und implementieren, die auf Azure Local ausgeführt wird.

Dieser Artikel enthält Empfehlungen für Netzwerk, Sicherheit, Identität, Verwaltung und Überwachung des Clusters basierend auf den Geschäftsanforderungen einer Organisation.

Wichtig

Die Informationen in diesem Artikel gelten für AKS auf Azure Local und AKS unter Windows Server. Die neueste Version von AKS wird auf dem Betriebssystem Azure Stack HCI, Version 23H2, ausgeführt. Weitere Informationen zur neuesten Version finden Sie unter AKS auf Azure Local.

Aufbau

Diagramm, das eine Basisarchitektur für Azure Kubernetes Service auf Azure Local zeigt.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Komponenten

  • Die folgenden Komponenten werden am Edge oder lokal installiert:

    • Azure Local ist eine Hyperconverged Infrastructure (HCI)-Clusterlösung, die virtualisierte Linux- und Windows-Workloads und deren Speicher in einer lokalen Hybridumgebung hostet. Eine lokale Azure-Instanz besteht aus einem Cluster, der zwischen 1 und 16 Knoten reichen kann.

    • Azure Arc-Ressourcenbrücke ist ein hoch verfügbarer virtueller Computer (VM), der auf Azure Local ausgeführt wird. Die Ressourcenbrücke ist für die Bereitstellung und Verwaltung mehrerer AKS-Cluster verantwortlich.

    • AKS auf Azure Local ist eine lokale Implementierung von AKS, die das Ausführen von containerisierten Anwendungen im großen Maßstab automatisiert. Ein AKS im lokalen Azure-Cluster umfasst hoch verfügbare Steuerebenenknoten und Arbeitsknoten. Containerisierte Anwendungen werden auf den Arbeitsknoten im AKS-Cluster ausgeführt. Um anwendungsisolieren zu können, können Sie bis zu 32 AKS-Cluster bereitstellen. Der AKS-Cluster besteht aus den folgenden Komponenten:

      • Die Steuerungsebene wird unter Azure Linux ausgeführt und enthält API-Serverkomponenten, die mit der Kubernetes-API interagieren. Darüber hinaus wird usw. verwendet, bei dem es sich um einen verteilten Schlüsselwertspeicher handelt, um alle Konfigurationen und Daten des Clusters zu speichern.

      • Die Arbeitsknoten werden entweder auf dem Azure Linux-Betriebssystem oder dem Windows Server-Betriebssystem ausgeführt. Sie hosten containerisierte Anwendungen in Pods. Pods stellen eine einzelne Instanz Ihrer Anwendung dar und ordnen in der Regel 1:1 einem Container zu. Einige Pods enthalten jedoch mehrere Container. Bereitstellungen bestehen aus mindestens einem identischen Pod. Pods und Bereitstellungen werden logisch in einen Namespace gruppiert, der den Zugriff auf die Verwaltung dieser Ressourcen definiert.

  • Die folgenden Komponenten werden in Azure installiert:

    • Azure Arc ist ein cloudbasierter Dienst, der das azure Resource Manager-basierte Verwaltungsmodell auf Nicht-Azure-Ressourcen erweitert, einschließlich Nicht-Azure-VMs, Kubernetes-Cluster und containerisierte Datenbanken.

    • Azure Automation bietet einen cloudbasierten Automatisierungs- und Konfigurationsdienst, der eine konsistente Verwaltung Ihrer Azure- und Nicht-Azure-Umgebungen unterstützt.

    • Azure Monitor ist ein cloudbasierter Dienst, der Verfügbarkeit und Leistung Ihrer Anwendungen und Dienste durch Bereitstellung einer umfassenden Lösung für das Sammeln, Analysieren und Reagieren auf Telemetriedaten aus Ihren cloudbasierten und lokalen Umgebungen maximiert.

    • Azure Policy ist ein cloudbasierter Dienst, der dazu beiträgt, organisatorische Standards zu erzwingen und die Compliance zu bewerten, indem Azure, einschließlich ressourcen, die von Azure Arc aktiviert sind, für die Eigenschaften dieser Ressourcen für Geschäftsregeln ausgewertet wird. Diese Standards umfassen auch Die Azure-Richtlinie für Kubernetes, die Richtlinien auf die Workloads anwendet, die innerhalb des Clusters ausgeführt werden.

    • Microsoft Defender für Cloud ist ein einheitliches System für die Sicherheitsverwaltung der Infrastruktur, das den Sicherheitsstatus Ihrer Rechenzentren stärkt und erweiterten Bedrohungsschutz für Ihre Hybridarbeitslasten in der Cloud und lokal bietet.

Szenariodetails

Mögliche Anwendungsfälle

  • Implementieren Sie in einer lokalen Kubernetes-Implementierung von AKS hoch verfügbare, containerbasierte Workloads.

  • Automatisieren Sie die Ausführung containerisierter Anwendungen im großen Stil.

  • Niedrigere Gesamtbetriebskosten (TCO) mithilfe von microsoft zertifizierten Lösungen, cloudbasierter Automatisierung, zentralisierter Verwaltung und zentralisierter Überwachung.

Zertifizierte Hardware

Verwenden Sie lokal zertifizierte Azure-Hardware, die die Einstellungen für einmaliges Starten, United Extensible Firmware Interface (UEFI) und Trusted Platform Module (TPM) standardmäßig bereitstellt. Computeanforderungen hängen von der Anwendung und der Gesamtanzahl der Steuerungsebenenknoten und Workerknoten in allen AKS-Clustern ab, die auf Azure Local ausgeführt werden. Verwenden Sie mehrere physische Knoten für die Bereitstellung von Azure Local, um hohe Verfügbarkeit zu erzielen. Alle Server müssen vom gleichen Hersteller und Modell sein und 64-Bit-Intel Nehalem-Grade, AMD EPYC-Grade oder höher kompatible Prozessoren verwenden, die adressübersetzung auf zweiter Ebene unterstützen.

Netzwerkanforderungen

Kubernetes stellt eine Abstraktionsebene zum Netzwerk bereit, indem die Kubernetes-Knoten mit dem virtuellen Überlagerungsnetzwerk verbunden werden. Es bietet auch über die Komponente kube-proxy ein- und ausgehende Konnektivität für Pods.

Diese Architektur verwendet ein virtuelles Überlagerungsnetzwerk, das IP-Adressen mithilfe statischer IP-Adressnetzwerke zuordnet. Diese Architektur verwendet Calico als Containernetzwerkschnittstellenanbieter. Statische IP-Adressnetzwerke erfordern vordefinierte Adresspools für alle Objekte in der Bereitstellung. Es bietet zusätzliche Vorteile und garantiert, dass die Workload und Anwendung immer erreichbar sind. Ein separater IP-Adresspool wird verwendet, um IP-Adressen kubernetes-Diensten zuzuweisen.

Die Netzwerkspezifikationen werden als logische Netzwerke in Azure Local definiert. Bevor Sie die logischen Netzwerke in Azure Local erstellen, lesen Sie die Netzwerkanforderungen und die IP-Adressplanung.

Speicheranforderungen

Alle Server im Cluster müssen die gleichen Laufwerkstypen mit der gleichen Größe und dem gleichen Modell aufweisen. Azure Local arbeitet mit direkt angeschlossener serieller erweiterter Technologieanlage, serial angeschlossener kleiner Computersystemschnittstelle, nicht volatile Speicherexpress oder persistenten Speicherlaufwerken, die physisch an einen Server angefügt sind. Für Clustervolumes verwendet HCI softwaredefinierte Speichertechnologie wie "Direkte Speicherplätze", um die physischen Laufwerke im Speicherpool für Fehlertoleranz, Skalierbarkeit und Leistung zu kombinieren. Anwendungen, die in AKS auf Azure Local ausgeführt werden, erwarten häufig, dass die folgenden Speicheroptionen verfügbar sind:

  • Volumes stellen eine Möglichkeit dar, Daten über Pods hinweg und über den Anwendungslebenszyklus zu speichern, abzurufen und zu speichern.

  • Persistente Volumes sind eine Speicherressource, die die Kubernetes-API erstellt und verwaltet. Sie können über die Lebensdauer einer einzelnen Pod hinaus existieren.

Erwägen Sie die Definition von Speicherklassen für verschiedene Ebenen und Standorte, um Kosten und Leistung zu optimieren. Die Speicherklassen unterstützen die dynamische Bereitstellung persistenter Volumes und definieren die Richtlinie reclaimPolicy, um die Aktion der zugrunde liegenden Speicherressource zur Verwaltung persistenter Volumes anzugeben, wenn der Pod gelöscht wird.

Erstellen und Verwalten von AKS auf Azure Local

Sie sollten AKS auf Azure Local wie jede andere von Ihnen verwaltete Azure-Ressource erstellen und verwalten. Sie können das Azure-Portal, azure CLI, Azure Resource Manager-Vorlagen (ARM-Vorlagen) oder Bicep verwenden.

Der Azure Arc-fähige Kubernetes-Dienst stellt die Ressourcen-Manager-Darstellung von AKS in einer lokalen Azure-Instanz bereit. Wenn Sie eine AKS im lokalen Azure-Cluster erstellen, werden Azure Arc-Agents automatisch in einem Kubernetes-Namespace bereitgestellt, um Protokolle und Metriken zu sammeln und Clustermetadaten, Kubernetes-Version und Knotenanzahl zu sammeln.

Die folgenden Empfehlungen gelten für die meisten Szenarios. Halten Sie sich an die Empfehlungen, es sei denn, Sie haben eine spezielle Anforderung, die Vorrang hat. Die folgenden Azure-Dienste müssen in derselben Azure-Region wie der AKS-Cluster bereitgestellt werden:

  • Verwenden Sie die MetalLB-Erweiterung , um einen MetalLB-Lastenausgleich auf dem AKS-Cluster für den L2-Lastenausgleich bereitzustellen.

  • Aktivieren Sie Azure Monitor Container Insights , um die Leistung von Containerarbeitslasten zu überwachen, die sowohl auf Linux- als auch auf Windows-Knotenpools ausgeführt werden. Sie sammelt Arbeitsspeicher- und Prozessormetriken von Controllern, Knoten und Containern über die Metrik-API. Mithilfe von Container Insights können Sie die Speicher- und Prozessorauslastung identifizieren, die gesamte Kubernetes-Clusterleistung erkennen, das Clusterverhalten verstehen und Warnungen für proaktive Überwachung konfigurieren.

  • Verwenden Sie verfügbare Automatisierungsfunktionen für die End-to-End-Verwaltung. AKS bietet eine vielzahl von Automatisierungsfeatures, einschließlich Betriebssystemupdates und Full-Stack-Updates wie Firmware und Treiber von lokalen Azure-Anbietern und -Partnern. Sie können Windows PowerShell lokal von einem der lokalen Azure-Computer oder remote von einem Verwaltungscomputer ausführen. Die Integration in Azure Automation und Azure Arc unterstützt eine Vielzahl von Automatisierungsszenarien für virtualisierte und containerisierte Workloads.

  • Wenden Sie Governance mit Azure-Richtlinie an, um Ressourcensteuerelemente im großen Maßstab zu erzwingen. Azure Policy erweitert Gatekeeper v3, ein Regler-Webhook für Open Policy Agent, um Sicherheitsvorkehrungen für AKS-Komponenten wie Pods, Container und Namespaces zentral durchzusetzen.

  • Stellen Sie Anwendungen konsistent mithilfe von Flux v2-Konfigurationen und Azure-Richtlinie für Kubernetes bereit, um skalierbare, richtliniengesteuerte Bereitstellungen zu erzielen. Sie können eine integrierte Richtliniendefinition auswählen und Richtlinienzuweisungen erstellen, die bestimmte Parameter für die Flux-Einrichtung aufweisen. Um die Trennung von Bedenken zu unterstützen, erstellen Sie mehrere Zuordnungen mit unterschiedlichen Flusskonfigurationen, die auf separate Quellen verweisen, z. B. ein Git-Repository für Clusteradministratoren und ein anderes Repository für Anwendungsteams.

Ü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 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 Erstellen einer Checkliste zur Überprüfung der Zuverlässigkeit.

  • Implementieren Sie drei bis fünf Steuerebenenknoten und mehrere Arbeitsknoten im Kubernetes-Cluster, um die Mindestverfügbarkeitsanforderungen für Anwendungen zu erfüllen.

  • Überprüfen Sie die Anforderungen für failoverclustering. AKS-Bereitstellungen nutzen Failoverclustering und Livemigration, um Hochverfügbarkeit und Fehlertoleranz zu bieten. Bei der Livemigration handelt es sich um ein Hyper-V-Feature, mit dem Sie ausgeführte VMs von einem Hyper-V Host ohne wahrgenommene Ausfallzeiten transparent auf einen anderen Host verschieben können.

  • Konfigurieren Sie Bereitstellungen für die Verwendung von Kubernetes-Features wie Bereitstellungen, Affinitätszuordnung und ReplicaSets, um sicherzustellen, dass die Pods in Unterbrechungsszenarien stabil sind.

  • Beschränken Sie die Nutzung von öffentlichen Containerimages, und ziehen Sie nur aus Containerregistrierungen, für die Sie die Kontrolle über die Vereinbarung auf Serviceebene haben, z. B. Azure Container Registry.

Sicherheit

Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Sicherheit.

Konzentrieren Sie sich auf den gesamten Stapel, indem Sie sowohl den Host als auch seine Container sichern.

Sicherheit der Infrastruktur

  • Verwenden Sie azure Local certified hardware that provides Secure Boot, UEFI, and TPM settings out of the box. Diese Technologien, kombiniert mit virtualisierungsbasierter Sicherheit, tragen zum Schutz sicherheitsrelevanter Workloads bei. Weitere Informationen zu überprüften Lösungen finden Sie unter Azure Local Solutions.

  • Verwenden Sie den sicheren Start, um sicherzustellen, dass der Server nur Software startet, denen ein Originalgerätehersteller vertraut.

  • Steuern Sie den Startvorgang des Servers über UEFI.

  • Mit TPM können Sie kryptografische Schlüssel speichern und alle hardwarebasierten, sicherheitsbezogenen Funktionen isolieren.

  • Verwenden Sie die BitLocker-Laufwerkverschlüsselung, um ruhende Speicherplätze zu verschlüsseln.

  • Verwenden Sie Defender für Cloud, um Sicherheitseinstellungen für Server und Cluster zu verwalten. Es bietet Bedrohungsschutz für Ihre Azure Arc-fähigen Kubernetes-Cluster. Die Defender for Cloud-Erweiterung sammelt Daten von Knoten im Cluster und sendet sie zur weiteren Analyse an das Back-End von Azure Defender für Kubernetes in der Cloud.

  • Verwenden Sie die rollenbasierte Zugriffssteuerung (Azure RBAC) für Rollenzuweisungen und zum Verwalten des Zugriffs auf den AKS-Cluster.

  • Verwenden Sie die Workloadidentität zum Sichern und Verwalten von Identitäten für den Zugriff auf Azure-Ressourcen von Workload-Pods.

  • AKS verfügt über verschlüsselung von geheimen Schlüsseln mithilfe eines KMS-Plug-Ins (Key Management Service). Alle AKS-Cluster verfügen standardmäßig über ein integriertes KMS-Plug-In. Dieses Plug-In generiert den Verschlüsselungsschlüssel und dreht ihn automatisch alle 30 Tage.

Anwendungssicherheit

  • Verwenden Sie die Anbietererweiterung "Azure Key Vault Secrets " auf Ihrer AKS auf der lokalen Azure-Instanz, um Ihre geheimen Schlüssel weiter zu schützen, die von verschiedenen Anwendungen verwendet werden, indem Sie sie im Key Vault speichern.

  • Verwenden Sie Azure-Richtlinie für Kubernetes , um Clustersicherheitsrichtlinien wie keine privilegierten Pods zu erzwingen.

  • Verwenden Sie eine Containerregistrierungsinstanz, die Sicherheitsrisikoüberprüfungen in ihrem Container-Repository enthält.

Containersicherheit

  • Härten Sie die Host- und Daemonumgebung, indem Sie unnötige Dienste entfernen.

  • Schließen Sie Geheimnisse nicht in die Images ein, und binden Sie sie nur über die Engine für die Containerorchestrierung ein.

  • Sichern Sie die Images in einer Containerregistrierungsinstanz, die Sicherheitslückenüberprüfung und Azure RBAC unterstützt.

  • Verwenden Sie die Isolation von Containern , und vermeiden Sie das Ausführen von Containern im privilegierten Modus, um zu verhindern, dass Angreifer Berechtigungen eskalieren, wenn ein Container kompromittiert wird.

Kostenoptimierung

Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Kostenoptimierung.

  • Verwenden Sie den Azure-Preisrechner , um die Kosten für Azure-Dienste wie Azure Monitor Container Insights zu schätzen, die in der Architektur verwendet werden. Im Abschnitt "Kostenoptimierung" in Well-Architected Framework werden weitere bewährte Methoden beschrieben. AKS ist kostenlos verfügbar, wenn Sie es in Azure Local verwenden. Weitere Informationen finden Sie unter Azure Local Pricing Details.

Operative Exzellenz

„Optimaler Betrieb“ deckt die Betriebsprozesse ab, die für die Bereitstellung einer Anwendung und deren Ausführung in der Produktion sorgen. Weitere Informationen finden Sie unter Checkliste für die Designüberprüfung zur betrieblichen Exzellenz.

  • Infrastruktur als Code: Verwenden Sie ARM-Vorlagen, Bicep oder Terraform, um die Clusterbereitstellung im großen Maßstab zu automatisieren. Verwenden Sie das Azure-Portal, um verfügbare und unterstützte Optionen für die Clustererstellung zu erkunden und Ihre Auswahl als Vorlage zu exportieren. Überprüfen Sie überprüfte Azure-Module für eine skalierbare Bereitstellungsoption. Weitere Informationen finden Sie im Hybridcontainerdienstmodul auf GitHub.

  • Azure Arc: Integration in Azure Arc- oder Azure-Dienste wie Azure Monitor und Log Analytics, die zusätzliche Verwaltungs-, Wartungs- und Ausfallsicherheitsfunktionen bieten.

  • GitOps: Anstatt Kubernetes-Komponenten manuell zu konfigurieren, verwenden Sie automatisierte Tools, um Konfigurationen auf einen Kubernetes-Cluster anzuwenden, da diese Konfigurationen in ein Quellrespository eingecheckt werden. Dieser Prozess wird häufig als GitOps bezeichnet. Zu den gängigen GitOps-Lösungen für Kubernetes gehören Flux und Argo CD. In dieser Architektur wird empfohlen, die von Microsoft bereitgestellte GitOps-Erweiterung zu verwenden, die auf Flux basiert.

Leistungseffizienz

Die Leistungseffizienz bezieht sich auf die Fähigkeit Ihrer Workload, die Anforderungen der Benutzer effizient zu erfüllen. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Leistungseffizienz.

  • Verwenden Sie lokal zertifizierte Azure-Hardware für verbesserte Anwendungsbetriebszeit und -leistung, vereinfachte Verwaltung und Vorgänge sowie niedrigere TCO.

  • Verstehen sie die Grenzen von AKS auf Azure Local. Microsoft unterstützt AKS auf lokalen Azure-Bereitstellungen mit maximal 16 physischen Servern pro Cluster, 32 Kubernetes-Clustern und 200 VMs.

  • Ermitteln Sie AKS für lokale Azure-Anforderungen basierend auf der Anzahl der Steuerungsebenenknoten, Arbeitsknoten und AKS-Cluster. Um die Hardware ordnungsgemäß zu größe, antizipieren Sie die Anzahl der Pods, Container und Workerknoten, die für jeden AKS-Cluster erforderlich sind. Reservieren Sie mindestens 15% der lokalen Azure-Kapazität, um geplante und ungeplante Fehler zu berücksichtigen.

    Nutzen Sie Für die Leistungseffizienz Computerressourcen auf eine Weise, die systemanforderungen erfüllt und gleichzeitig diese Effizienz bei Bedarfsänderungen und Technologien weiterentwickelt. Wenn ein Knoten aufgrund einer Wartung oder eines unerwarteten Fehlers offline ist, sollten die verbleibenden Knoten in der Regel über genügend Kapazität verfügen, um die erhöhte Last zu verarbeiten.

  • Überprüfen Sie die AKS-Knotenplatzierungslogik. AKS auf Azure Local verteilt die Arbeitsknoten für jeden Knotenpool in einem AKS-Cluster mithilfe der lokalen Platzierungslogik von Azure über Verfügbarkeitssätze.

  • Planen Sie IP-Adressreservierungen zum Konfigurieren von AKS-Clustern und Kubernetes-Diensten.

  • Implementieren Sie für die Zuordnung von Bandbreite für Datenverkehr eine Optimierung der Netzwerkleistung.

  • Verwenden Sie die Beschleunigung der Grafikverarbeitungseinheit für umfangreiche Workloads.

Beitragende

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

Hauptautoren:

Anderer Mitwirkender:

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

Nächster Schritt