Azure Well-Architected Framework-Bewertung – Azure Kubernetes Service (AKS)

Dieser Artikel enthält bewährte Architekturmethoden für Azure Kubernetes Service (AKS). Die Anleitung basiert auf den fünf Säulen der Architekturexzellenz:

  • Zuverlässigkeit
  • Sicherheit
  • Kostenoptimierung
  • Optimaler Betrieb
  • Effiziente Leistung

Wir gehen davon aus, dass Sie die Prinzipien des Systementwurfs verstehen, über Kenntnisse in Azure Kubernetes Service verfügen und mit den Funktionen vertraut sind. Weitere Informationen finden Sie unter Azure Kubernetes Service.

Voraussetzungen

Das Verständnis der Well-Architected Framework-Säulen kann zur Erstellung einer qualitativ hochwertigen, stabilen und effizienten Cloudarchitektur beitragen. Es wird empfohlen, Ihre Workload mithilfe der Bewertung der Azure Well-Architected Framework-Überprüfung zu überprüfen.

Für den Kontext sollten Sie eine Referenzarchitektur überprüfen, die diese Überlegungen in ihrem Entwurf widerspiegelt. Es wird empfohlen, mit der Basisarchitektur für einen Azure Kubernetes Service-Cluster (AKS) und microservices-Architektur auf Azure Kubernetes Service zu beginnen. Lesen Sie auch den AKS-Zielzonenbeschleuniger, der einen Architekturansatz und eine Referenzimplementierung zum Vorbereiten von Zielzonenabonnements für einen skalierbaren AKS-Cluster (Azure Kubernetes Service) bietet.

Zuverlässigkeit

In der Cloud muss leider mit Fehlern gerechnet werden. Es geht nicht darum, Fehler vollständig zu verhindern, sondern darum, die Auswirkungen einer einzelnen fehlerhaften Komponente zu minimieren. Verwenden Sie die folgenden Informationen, um fehlerhafte Instanzen zu minimieren.

Bei der Erörterung von Zuverlässigkeit mit Azure Kubernetes Service ist es wichtig, zwischen Clusterzulässigkeit und Workloadzulässigkeit zu unterscheiden. Clusterzulässigkeit ist eine gemeinsame Verantwortung zwischen dem Clusteradministrator und dem Ressourcenanbieter, während die Workloadzulässigkeit die Domäne eines Entwicklers ist. Azure Kubernetes Service umfasst Überlegungen und Empfehlungen für beide Rollen.

In der Entwurfscheckliste und der Folgenden Liste der Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl für die Clusterarchitektur, die Workloadarchitektur oder beides gilt.

Prüfliste für den Entwurf

  • Clusterarchitektur: Verwenden Sie für kritische Workloads Verfügbarkeitszonen für Ihre AKS-Cluster.
  • Clusterarchitektur: Planen Sie den IP-Adressraum, um sicherzustellen, dass Ihr Cluster zuverlässig skaliert werden kann, einschließlich der Behandlung von Failoverdatenverkehr in Topologien mit mehreren Clustern.
  • Clusterarchitektur: Aktivieren Sie Container Insights , um Ihren Cluster zu überwachen und Warnungen für Ereignisse zu konfigurieren, die sich auf die Zuverlässigkeit auswirken.
  • Workloadarchitektur: Stellen Sie sicher, dass Workloads so konzipiert sind, dass sie horizontale Skalierung unterstützen und anwendungsbereit und integrität melden.
  • Cluster- und Workloadarchitekturen: Stellen Sie sicher, dass Ihre Workload auf Benutzerknotenpools ausgeführt wird, und wählen Sie die richtige Größen-SKU aus. Schließen Sie mindestens zwei Knoten für Benutzerknotenpools und drei Knoten für den Systemknotenpool ein.
  • Clusterarchitektur: Verwenden Sie die AKS-Verfügbarkeits-SLA, um Verfügbarkeitsziele für Produktionsworkloads zu erreichen.

AKS-Konfigurationsempfehlungen

Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre AKS-Konfiguration auf Zuverlässigkeit zu optimieren.

Empfehlung Vorteil
Cluster- und Workloadarchitekturen: Steuern Sie die Podplanung mithilfe von Knotenselektoren und Affinität. Damit ermöglichen Sie dem Kubernetes-Scheduler, Workloads durch Hardware im Knoten logisch zu isolieren. Im Gegensatz zu Tolerierungen können Pods ohne übereinstimmenden Knotenauswahl auf bezeichneten Knoten geplant werden, wodurch nicht verwendete Ressourcen auf den Knoten genutzt werden können, aber Pods, die den übereinstimmenden Knotenauswahl definieren, Priorität eingeräumt werden. Die Knotenaffinität bietet mehr Flexibilität. Hiermit können Sie definieren, was geschieht, wenn für den Pod kein übereinstimmender Knoten vorhanden ist.
Clusterarchitektur: Stellen Sie die richtige Auswahl des Netzwerk-Plug-Ins basierend auf den Netzwerkanforderungen und der Clusterdimensionierung sicher. Azure CNI ist für bestimmte Szenarien erforderlich, z. B. Windows-basierte Knotenpools, bestimmte Netzwerkanforderungen und Kubernetes-Netzwerkrichtlinien. Weitere Informationen finden Sie unter Kubenet und Azure CNI .
Cluster- und Workloadarchitekturen: Verwenden Sie die AKS-Verfügbarkeits-SLA für Cluster in Produktionsqualität. Die AKS-Uptime-SLA garantiert Folgendes:
- 99.95% Verfügbarkeit des Kubernetes-API-Serverendpunkts für AKS-Cluster, die Azure-Verfügbarkeitszonen verwenden, oder
- 99.9% Verfügbarkeit für AKS-Cluster, in denen keine Azure-Verfügbarkeitszonen verwendet werden.
Cluster- und Workloadarchitekturen: Konfigurieren Sie die Überwachung des Clusters mit Container Insights. Container Insights helfen beim Überwachen der Integrität und Leistung von Controllern, Knoten und Containern, die in Kubernetes über die Metrik-API verfügbar sind. Die Integration mit Prometheus ermöglicht die Erfassung von Anwendungs- und Workloadmetriken.
Clusterarchitektur: Verwenden Sie Verfügbarkeitszonen , um die Resilienz innerhalb einer Azure-Region zu maximieren, indem Sie AKS-Agent-Knoten auf physisch getrennte Rechenzentren verteilen. Durch das Verteilen von Knotenpools auf mehrere Zonen werden Knoten in einem Knotenpool auch dann weiter ausgeführt, wenn eine andere Zone ausgefallen ist. Wenn Kolonkalitätsanforderungen vorhanden sind, kann entweder eine reguläre VMSS-basierte AKS-Bereitstellung in einer einzelnen Zone oder Näherungsplatzierungsgruppen verwendet werden, um die Latenz von Knoten zu minimieren.
Clusterarchitektur: Übernehmen Sie eine Strategie für mehrere Regionen , indem Sie AKS-Cluster bereitstellen, die in verschiedenen Azure-Regionen bereitgestellt werden, um die Verfügbarkeit zu maximieren und Geschäftskontinuität zu gewährleisten. Workloads mit Internetzugriff sollten Azure Front Door oder Azure Traffic Manager nutzen, um Datenverkehr global über AKS-Cluster zu leiten.
Cluster- und Workloadarchitekturen: Definieren Sie Podressourcenanforderungen und -grenzwerte in Anwendungsbereitstellungsmanifesten, und erzwingen Sie sie mit Azure Policy. Grenzwerte für Container-CPU- und Arbeitsspeicherressourcen sind erforderlich, um eine Ressourcenerschöpfung in Ihrem Kubernetes-Cluster zu verhindern.
Cluster- und Workloadarchitekturen: Halten Sie den Systemknotenpool von Anwendungsworkloads isoliert. Systemknotenpools erfordern eine VM-SKU mit mindestens 2 vCPUs und 4 GB Arbeitsspeicher, aber es wird eine VCPU oder mehr empfohlen. Ausführliche Informationen zu den Anforderungen finden Sie unter System- und Benutzerknotenpools.
Cluster- und Workloadarchitekturen: Trennen Sie Anwendungen basierend auf spezifischen Anforderungen von dedizierten Knotenpools. Anwendungen verwenden möglicherweise dieselbe Konfiguration und benötigen GPU-fähige VMs, CPU- oder speicheroptimierte VMs oder die Möglichkeit, auf Null zu skalieren. Vermeiden Sie eine große Anzahl von Knotenpools, um den zusätzlichen Verwaltungsaufwand zu reduzieren.
Clusterarchitektur: Verwenden Sie ein NAT-Gateway für Cluster, die Workloads ausführen, die viele gleichzeitig ausgehende Verbindungen herstellen. Um Zuverlässigkeitsprobleme mit Azure Load Balancer Einschränkungen bei hohem gleichzeitigem ausgehendem Datenverkehr zu vermeiden, unterstützen wir stattdessen zuverlässigen ausgehenden Datenverkehr im großen Stil.

Weitere Vorschläge finden Sie unter Prinzipien der Säule "Zuverlässigkeit".

Azure Policy

Azure Kubernetes Service bietet eine Vielzahl von integrierten Azure-Richtlinien, die sowohl für die Azure-Ressource gelten, wie z. B. typische Azure Policies, als auch unter Verwendung des Azure Policy Add-Ons für Kubernetes auch innerhalb des Clusters. Es gibt eine Vielzahl von Richtlinien, und die wichtigsten Richtlinien im Zusammenhang mit dieser Säule sind hier zusammengefasst. Eine ausführlichere Ansicht finden Sie unter Integrierte Richtliniendefinitionen für Kubernetes.

Cluster- und Workloadarchitektur

Zusätzlich zu den integrierten Azure Policy Definitionen können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure Policy Add-On für Kubernetes erstellt werden. Dadurch können Sie zusätzliche Zuverlässigkeitseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.

Sicherheit

Sicherheit ist einer der wichtigsten Aspekte jeder Architektur. Um zu erfahren, wie AKS die Sicherheit Ihrer Anwendungsworkload erhöhen kann, empfehlen wir Ihnen, die Prinzipien des Sicherheitsentwurfs zu lesen. Wenn Ihr Azure Kubernetes Service Cluster für die Ausführung einer sensiblen Workload konzipiert werden muss, die den gesetzlichen Anforderungen des Payment Card Industry Data Security Standard (PCI-DSS 3.2.1) entspricht, überprüfen Sie den AKS-regulierten Cluster für PCI-DSS 3.2.1.

Weitere Informationen zur Unterstützung und Anforderungen von DoD Impact Level 5 (IL5) mit AKS finden Sie unter Azure Government IL5-Isolationsanforderungen.

Wenn Sie die Sicherheit mit Azure Kubernetes Service besprechen, ist es wichtig, zwischen Clustersicherheit und Workloadsicherheit zu unterscheiden. Clustersicherheit ist eine gemeinsame Verantwortung zwischen dem Clusteradministrator und ihrem Ressourcenanbieter, während die Workloadsicherheit die Domäne eines Entwicklers ist. Azure Kubernetes Service umfasst Überlegungen und Empfehlungen für beide Rollen.

In der Entwurfscheckliste und der Folgenden Liste der Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl für die Clusterarchitektur, die Workloadarchitektur oder beides gilt.

Prüfliste für den Entwurf

  • Clusterarchitektur: Verwenden Sie verwaltete Identitäten , um die Verwaltung und Rotation von Dienstprinzipien zu vermeiden.
  • Clusterarchitektur: Verwenden Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes mit Microsoft Entra ID für den Zugriff mit den geringsten Rechten und minimieren Sie die Gewährung von Administratorrechten zum Schutz der Konfiguration und des Zugriffs auf Geheimnisse.
  • Clusterarchitektur: Verwenden Sie Microsoft Defender für Container mit Azure Sentinel, um Bedrohungen in Ihrem Cluster und den darauf ausgeführten Workloads schnell zu erkennen und darauf zu reagieren.
  • Clusterarchitektur: Stellen Sie einen privaten AKS-Cluster bereit, um sicherzustellen, dass der Datenverkehr der Clusterverwaltung zu Ihrem API-Server in Ihrem privaten Netzwerk verbleibt. Oder verwenden Sie die Api-Server-Zulassungsliste für nicht private Cluster.
  • Workloadarchitektur: Verwenden Sie eine Web Application Firewall, um HTTP(S)-Datenverkehr zu schützen.
  • Workloadarchitektur: Stellen Sie sicher, dass Ihre CI/CID-Pipeline mit containerbasierter Überprüfung gehärtet ist.

Empfehlungen

Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre AKS-Konfiguration für die Sicherheit zu optimieren.

Empfehlung Vorteil
Clusterarchitektur: Verwenden Sie Microsoft Entra Integration. Mithilfe von Microsoft Entra ID wird die Identitätsverwaltungskomponente zentralisiert. Jede Änderung von Benutzerkonto oder Gruppenstatus wird automatisch im Zugriff auf den AKS-Cluster aktualisiert. Die Entwickler und Anwendungsbesitzer Ihres Kubernetes-Clusters benötigen Zugriff auf verschiedene Ressourcen.
Clusterarchitektur: Authentifizieren Sie sich mit Microsoft Entra ID zum Azure Container Registry. AKS und Microsoft Entra ID ermöglichen die Authentifizierung mit Azure Container Registry ohne Verwendung von GeheimnissenimagePullSecrets. Weitere Informationen finden Sie unter Authentifizieren mit Azure Container Registry von Azure Kubernetes Service.
Clusterarchitektur: Schützen Sie Netzwerkdatenverkehr zu Ihrem API-Server mit einem privaten AKS-Cluster. Standardmäßig wird Netzwerkdatenverkehr zwischen Ihren Knotenpools und dem API-Server über das Microsoft-Backbone-Netzwerk geleitet. Mithilfe eines privaten Clusters können Sie sicherstellen, dass der Netzwerkdatenverkehr zu Ihrem API-Server nur im privaten Netzwerk verbleibt.
Clusterarchitektur: Verwenden Sie für nicht private AKS-Cluster autorisierte IP-Bereiche des API-Servers. Wenn Sie öffentliche Cluster verwenden, können Sie weiterhin den Datenverkehr begrenzen, der Ihren Cluster-API-Server erreichen kann, indem Sie das Feature für autorisierte IP-Bereiche verwenden. Schließen Sie Quellen wie die öffentlichen IP-Adressen Ihrer Bereitstellungsbuild-Agents, die Betriebsverwaltung und den Ausgangspunkt von Knotenpools (z. B. Azure Firewall) ein.
Clusterarchitektur: Schützen Sie den API-Server mit Microsoft Entra RBAC. Eines der wichtigsten Dinge, die Sie tun können, um den Zugriff auf den Kubernetes-API-Server zu sichern, ist die Sicherung Ihres Clusters. Integrieren Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes in Microsoft Entra ID, um den Zugriff auf den API-Server zu steuern. Deaktivieren Sie lokale Konten, um den gesamten Clusterzugriff mithilfe Microsoft Entra ID-basierten Identitäten zu erzwingen.
Clusterarchitektur: Verwenden Sie Azure-Netzwerkrichtlinien oder Calico. Schützen und Steuern des Netzwerkdatenverkehrs zwischen Pods in einem Cluster
Clusterarchitektur: Schützen sie Cluster und Pods mit Azure Policy. Azure Policy können dazu beitragen, umfassende Erzwingungen und Schutzmaßnahmen auf Ihre Cluster zentral und konsistent anzuwenden. Zudem kann gesteuert werden, welche Funktionen den Pods gewährt werden und ob etwas nicht der Unternehmensrichtlinie entspricht.
Clusterarchitektur: Schützen des Containerzugriffs auf Ressourcen. Begrenzen Sie den Zugriff auf Aktionen, die von Containern ausgeführt werden können. Geben Sie die niedrigste Anzahl an Berechtigungen an, und vermeiden Sie die Verwendung von Stamm- oder Rechteausweitung.
Workloadarchitektur: Verwenden Sie eine Web Application Firewall, um HTTP(S)-Datenverkehr zu schützen. Um eingehenden Datenverkehr auf potenzielle Angriffe zu überprüfen, verwenden Sie eine Webanwendungsfirewall wie Azure Web Application Firewall (WAF) auf Azure Application Gateway oder Azure Front Door.
Clusterarchitektur: Steuern des ausgehenden Datenverkehrs von Clustern. Stellen Sie sicher, dass der ausgehende Datenverkehr Ihres Clusters über einen Netzwerksicherheitspunkt wie Azure Firewall oder einen HTTP-Proxy geleitet wird.
Clusterarchitektur: Verwenden Sie den Open-Source-Microsoft Entra Workload ID- und Secrets Store-CSI-Treiber mit Azure Key Vault. Schützen und Rotieren von Geheimnissen, Zertifikaten und Verbindungszeichenfolgen in Azure Key Vault mit starker Verschlüsselung. Stellt ein Zugriffsüberwachungsprotokoll bereit und hält wichtige Geheimnisse aus der Bereitstellungspipeline heraus.
Clusterarchitektur: Verwenden Sie Microsoft Defender für Container. Überwachen und verwalten Sie die Sicherheit Ihrer Cluster, Container und ihrer Anwendungen.

Weitere Vorschläge finden Sie unter Prinzipien der Säule „Sicherheit“.

Azure Advisor unterstützt Sie bei der Sicherstellung und Verbesserung des Azure Kubernetes-Diensts. Sie gibt Empfehlungen für eine Teilmenge der im folgenden Richtlinienabschnitt aufgeführten Elemente aus, z. B. Cluster ohne konfigurierte RBAC, fehlende Microsoft Defender Konfiguration, uneingeschränkter Netzwerkzugriff auf den API Server. Ebenso werden Workloadempfehlungen für einige Elemente der Podsicherheitsinitiative ausgegeben. Überprüfen Sie die Empfehlungen.

Richtliniendefinitionen

Azure Policy bietet verschiedene integrierte Richtliniendefinitionen, die sowohl für die Azure-Ressource als auch für AKS gelten, wie Standardrichtliniendefinitionen, und die Verwendung des Azure Policy-Add-Ons für Kubernetes, auch innerhalb des Clusters. Viele der Azure-Ressourcenrichtlinien werden sowohl in Audit/Deny, als auch in einer Variante "Bereitstellen, wenn nicht vorhanden" bereitgestellt.

Es gibt eine Vielzahl von Richtlinien, und die wichtigsten Richtlinien im Zusammenhang mit dieser Säule sind hier zusammengefasst. Eine ausführlichere Ansicht finden Sie unter Integrierte Richtliniendefinitionen für Kubernetes.

Clusterarchitektur

  • Microsoft Defender für cloudbasierte Richtlinien
  • Authentifizierungsmodus und Konfigurationsrichtlinien (Microsoft Entra ID, RBAC, Deaktivieren der lokalen Authentifizierung)
  • API Server-Netzwerkzugriffsrichtlinien, einschließlich privatem Cluster

Cluster- und Workloadarchitektur

  • Sicherheitsinitiativen für Kubernetes-Clusterpods linuxbasierte Workloads
  • Einschließen von Pod- und Containerfunktionsrichtlinien wie AppArmor, sysctl, Sicherheitskappen, SELinux, seccomp, privilegierte Container, Automount-Cluster-API-Anmeldeinformationen
  • Bereitstellungs-, Volumetreiber- und Dateisystemrichtlinien
  • Pod/Container-Netzwerkrichtlinien, z. B. Hostnetzwerk, Port, zulässige externe IP-Adressen, HTTPs und interne Lastenausgleichsmodule

Azure Kubernetes Service Bereitstellungen verwenden häufig auch Azure Container Registry für Helm-Diagramme und Containerimages. Azure Container Registry unterstützt auch eine Vielzahl von Azure-Richtlinien, die Netzwerkeinschränkungen, Zugriffssteuerung und Microsoft Defender für Cloud umfassen, was eine sichere AKS-Architektur ergänzt.

Zusätzlich zu den integrierten Richtlinien können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure Policy Add-Ons für Kubernetes erstellt werden. Dadurch können Sie zusätzliche Sicherheitseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.

Weitere Vorschläge finden Sie unter AKS-Sicherheitskonzepte und bewerten Sie unsere Empfehlungen zur Sicherheitshärtung basierend auf dem CIS Kubernetes-Benchmark.

Kostenoptimierung

Bei der Kostenoptimierung geht es darum, ein Verständnis für Ihre verschiedenen Konfigurationsoptionen sowie für empfohlene bewährte Methoden zu gewinnen, um unnötige Ausgaben zu verringern und die betriebliche Effizienz zu verbessern. Bevor Sie die Anleitung in diesem Artikel befolgen, sollten Sie sich die folgenden Ressourcen ansehen:

Hinsichtlich der Kostenoptimierung mit Azure Kubernetes Service ist es wichtig, zwischen den Kosten für Clusterressourcen und den Kosten für Workloadressourcen zu unterscheiden. Clusterressourcen sind eine gemeinsame Verantwortung des Clusteradministrators und seines Ressourcenanbieters, während Workloadressourcen im Verantwortungsbereich eines Entwicklers liegen. Azure Kubernetes Service umfasst Überlegungen und Empfehlungen für beide Rollen.

In der Entwurfscheckliste und der Liste der Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Wahl für die Clusterarchitektur, workloadarchitektur oder beides geeignet ist.

Navigieren Sie zur Optimierung der Clusterkosten zum Azure-Preisrechner, und wählen Sie Azure Kubernetes Service aus den verfügbaren Produkten aus. Sie können verschiedene Konfigurations- und Zahlungspläne im Rechner testen.

Prüfliste für den Entwurf

  • Clusterarchitektur: Verwenden Sie die geeignete VM-SKU pro Knotenpool und reservierte Instanzen, wo langfristige Kapazität erwartet wird.
  • Cluster- und Workloadarchitekturen: Verwenden Sie verwaltete Datenträger geeigneter Ebene und Größe.
  • Clusterarchitektur: Überprüfen Sie Leistungsmetriken beginnend mit CPU, Arbeitsspeicher, Speicher und Netzwerk, um Möglichkeiten zur Kostenoptimierung im Hinblick auf Cluster, Knoten und Namespace zu identifizieren.
  • Cluster- und Workloadarchitektur: Verwenden Sie automatische Skalierungen, um zu skalieren, wenn Workloads weniger aktiv sind.

Empfehlungen

Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre AKS-Konfiguration im Hinblick auf die Kosten zu optimieren.

Empfehlung Vorteil
Cluster- und Workloadarchitekturen: Richten Sie die SKU-Auswahl und die Größe des verwalteten Datenträgers an den Workloadanforderungen aus. Wenn Sie Ihre Auswahl an Ihre Workloadanforderungen anpassen, wird sichergestellt, dass Sie nicht für nicht benötigte Ressourcen bezahlen.
Clusterarchitektur: Wählen Sie den richtigen virtuellen Computer instance Typ aus. Die Auswahl des richtigen virtuellen Computers instance Typs ist von entscheidender Bedeutung, da sich dies direkt auf die Kosten für die Ausführung von Anwendungen auf AKS auswirkt. Die Wahl eines leistungsstarken instance ohne ordnungsgemäße Nutzung kann zu verschwenderlichen Ausgaben führen, während die Wahl eines leistungsstarken instance zu Leistungsproblemen und erhöhten Ausfallzeiten führen kann. Um den richtigen virtuellen Computer instance Typ zu ermitteln, berücksichtigen Sie Workloadmerkmale, Ressourcenanforderungen und Verfügbarkeitsanforderungen.
Clusterarchitektur: Wählen Sie virtuelle Computer basierend auf der Arm-Architektur aus. AKS unterstützt das Erstellen von ARM64 Ubuntu-Agent-Knoten sowie eine Kombination aus Intel- und ARM-Architekturknoten in einem Cluster, die eine bessere Leistung bei geringeren Kosten bieten können.
Clusterarchitektur: Wählen Sie Azure Spot Virtual Machines aus. Spot-VMs ermöglichen Es Ihnen, die nicht ausgelastete Azure-Kapazität mit erheblichen Rabatten zu nutzen (bis zu 90 % im Vergleich zu Preisen mit nutzungsbasierter Bezahlung). Wenn Azure Kapazität zurück benötigt, räumt die Azure-Infrastruktur die Spotknoten aus.
Clusterarchitektur: Wählen Sie die entsprechende Region aus. Aufgrund vieler Faktoren variieren die Ressourcenkosten je nach Region in Azure. Bewerten Sie die Kosten-, Latenz- und Complianceanforderungen, um sicherzustellen, dass Sie Ihre Workload kostengünstig ausführen und keine Auswirkungen auf Ihre Endbenutzer haben oder zusätzliche Netzwerkgebühren erstellen.
Workloadarchitektur: Verwalten sie kleine und optimierte Images. Die Optimierung Ihrer Images trägt dazu bei, die Kosten zu senken, da neue Knoten diese Images herunterladen müssen. Erstellen Sie Images so, dass der Container so schnell wie möglich gestartet wird, um Fehler oder Timeouts von Benutzeranforderungen zu vermeiden, während die Anwendung gestartet wird, was möglicherweise zu einer Überbereitstellung führt.
Clusterarchitektur: Aktivieren Sie die automatische Clusterskalierung , um die Anzahl der Agentknoten als Reaktion auf überschüssige Ressourcenkapazität automatisch zu reduzieren. Mit dem automatischen Herunterskalieren der Anzahl von Knoten in Ihrem AKS-Cluster können Sie einen effizienten Cluster ausführen, wenn die Nachfrage niedrig ist, und bei bedarfsabhängigem Hochskalieren hochskaliert werden.
Clusterarchitektur: Aktivieren Sie die automatische Bereitstellung von Knoten , um die Vm-SKU-Auswahl zu automatisieren. Node Autoprovision vereinfacht den SKU-Auswahlprozess und entscheidet basierend auf ausstehenden Podressourcenanforderungen über die optimale VM-Konfiguration, um Workloads effizient und kostengünstig auszuführen.
Workloadarchitektur: Verwenden Sie die horizontale Pod-Autoskalierung. Passen Sie die Anzahl von Pods in einer Bereitstellung abhängig von der CPU-Auslastung oder anderen ausgewählten Metriken an, die Clusterskalierungsvorgänge unterstützen.
Workloadarchitektur: Verwenden Sie die vertikale Pod-Autoskalierung (Vorschau). Richten Sie Ihre Pods mit Rechten ein, und legen Sie Anforderungen und Grenzwerte basierend auf der historischen Nutzung dynamisch fest.
Workloadarchitektur: Verwenden Sie Die ereignisgesteuerte automatische Skalierung (Event Driven AutoCaling , KEDA) von Kubernetes. Skalieren Sie basierend auf der Anzahl der verarbeiteten Ereignisse. Wählen Sie aus einem umfangreichen Katalog mit mehr als 50 KEDA-Skalierungen.
Cluster- und Workloadarchitekturen: Übernehmen Sie eine finanzielle Disziplin und kulturelle Praxis in der Cloud, um den Besitz der Cloudnutzung zu fördern. Die Grundlage für die Aktivierung der Kostenoptimierung ist die Streuung eines kostensparenden Clusters. Ein Finanzoperationsansatz (Financial Operations Approach, FinOps) wird häufig verwendet, um Organisationen bei der Senkung der Cloudkosten zu unterstützen. Es ist eine Praxis, die die Zusammenarbeit zwischen Finanz-, Betriebs- und Entwicklungsteams umfasst, um die Ausrichtung auf Kosteneinsparungsziele zu fördern und Transparenz in die Cloudkosten zu bringen.
Clusterarchitektur: Registrieren Sie sich für Azure-Reservierungen oder den Azure-Sparplan. Wenn Sie die Kapazität ordnungsgemäß geplant haben, ist Ihre Workload vorhersagbar und für einen längeren Zeitraum vorhanden. Registrieren Sie sich für eine Azure-Reservierung oder einen Sparplan , um Ihre Ressourcenkosten weiter zu senken.
Clusterarchitektur: Konfigurieren Sie die Überwachung des Clusters mit Container Insights. Container Insights-Hilfe bietet umsetzbare Einblicke in Ihre Cluster im Leerlauf und nicht zugeordnete Ressourcen. Container Insights unterstützt auch das Sammeln von Prometheus-Metriken und die Integration in Azure Managed Grafana, um einen ganzheitlichen Überblick über Ihre Anwendung und Infrastruktur zu erhalten.
Clusterarchitektur: Konfigurieren Sie das Add-On für die AKS-Kostenanalyse. Mit der Clustererweiterung für die Kostenanalyse erhalten Sie präzise Einblicke in die Kosten im Zusammenhang mit verschiedenen Kubernetes-Ressourcen in Ihren Clustern oder Namespaces.

Weitere Vorschläge finden Sie unter Prinzipien der Säule Kostenoptimierung und Optimieren von Kosten in Azure Kubernetes Service.

Richtliniendefinitionen

Obwohl es keine integrierten Richtlinien gibt, die sich auf die Kostenoptimierung beziehen, können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure Policy Add-On für Kubernetes erstellt werden. Dadurch können Sie zusätzliche Kostenoptimierungseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.

Cloudeffizienz

Um Workloads nachhaltiger und cloudeffizienter zu machen, müssen Die Anstrengungen zur Kostenoptimierung, zur Reduzierung der CO2-Emissionen und zur Optimierung des Energieverbrauchs kombiniert werden. Die Optimierung der Anwendungskosten ist der erste Schritt, um Workloads nachhaltiger zu gestalten.

Erfahren Sie, wie Sie nachhaltige und effiziente AKS-Workloads erstellen, unter Prinzipien der nachhaltigen Softwareentwicklung in Azure Kubernetes Service (AKS).

Optimaler Betrieb

Die Überwachung und die Diagnose sind von entscheidender Bedeutung. Sie können nicht nur Leistungsstatistiken messen, sondern auch Metriken verwenden, um Probleme schnell zu beheben und zu beheben. Es wird empfohlen, die Entwurfsprinzipien für betriebsbezogene Exzellenz und den Betriebsleitfaden für Tag-2 zu lesen.

Bei der Diskussion über operationale Exzellenz mit Azure Kubernetes Service ist es wichtig, zwischen erstklassiger betriebsbezogener Clusterqualität und erstklassiger Workload zu unterscheiden. Clustervorgänge sind eine gemeinsame Verantwortung zwischen dem Clusteradministrator und ihrem Ressourcenanbieter, während Workloadvorgänge die Domäne eines Entwicklers sind. Azure Kubernetes Service umfasst Überlegungen und Empfehlungen für beide Rollen.

In der Entwurfsprüfliste und der Unten aufgeführten Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl für clusterarchitektur, Workloadarchitektur oder beides geeignet ist.

Prüfliste für den Entwurf

  • Clusterarchitektur: Verwenden Sie eine vorlagenbasierte Bereitstellung mit Bicep, Terraform oder anderen. Stellen Sie sicher, dass alle Bereitstellungen wiederholbar, nachverfolgbar und in einem Quellcoderepository gespeichert sind.
  • Clusterarchitektur: Erstellen Sie einen automatisierten Prozess, um sicherzustellen, dass Ihre Cluster mit den erforderlichen clusterweiten Konfigurationen und Bereitstellungen gestartet werden. Dies wird häufig mithilfe von GitOps durchgeführt.
  • Workloadarchitektur: Verwenden Sie einen wiederholbaren und automatisierten Bereitstellungsprozess für Ihre Workload innerhalb Ihres Softwareentwicklungslebenszyklus.
  • Clusterarchitektur: Aktivieren Sie Diagnose Einstellungen, um sicherzustellen, dass Interaktionen mit der Steuerungsebene oder dem API-Kernserver protokolliert werden.
  • Cluster- und Workloadarchitekturen: Aktivieren Sie Container Insights, um Metriken, Protokolle und Diagnose zu sammeln, um die Verfügbarkeit und Leistung des Clusters und der Workloads zu überwachen, die darauf ausgeführt werden.
  • Workloadarchitektur: Die Workload sollte so konzipiert sein, dass telemetriedaten ausgegeben werden können, die gesammelt werden können, die auch Liveline- und Bereitschaftsstatus enthalten sollten.
  • Cluster- und Workloadarchitekturen: Verwenden Sie Chaos Engineering-Methoden, die auf Kubernetes ausgerichtet sind, um Probleme mit der Anwendungs- oder Plattformzulässigkeit zu identifizieren.
  • Workloadarchitektur: Optimieren Sie Ihre Workload, um effizient in einem Container zu arbeiten und bereitzustellen.
  • Cluster- und Workloadarchitekturen: Erzwingen sie die Cluster- und Workloadgovernance mithilfe von Azure Policy.

Empfehlungen

Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre AKS-Konfiguration für Vorgänge zu optimieren.

Empfehlung Vorteil
Cluster- und Workloadarchitekturen: Lesen Sie die Dokumentation zu bewährten AKS-Methoden . Um Anwendungen erfolgreich in AKS zu erstellen und auszuführen, müssen Sie wichtige Aspekte verstehen und implementieren. Hierzu gehören Mehrinstanzenfähigkeit und Scheduler-Features, Cluster- und Podsicherheit oder Business Continuity & Disaster Recovery.
Cluster- und Workloadarchitekturen: Lesen Sie Azure Chaos Studio. Azure Chaos Studio kann dabei helfen, Fehler zu simulieren und Notfallwiederherstellungssituationen auszulösen.
Cluster- und Workloadarchitekturen: Konfigurieren Sie die Überwachung des Clusters mit Container Insights. Container Insights helfen bei der Überwachung der Leistung von Containern, indem Speicher- und Prozessormetriken von Controllern, Knoten und Containern gesammelt werden, die in Kubernetes über die Metrik-API und Containerprotokolle verfügbar sind.
Workloadarchitektur: Überwachen der Anwendungsleistung mit Azure Monitor Konfigurieren Sie Application Insights für die codebasierte Überwachung von Anwendungen, die in einem AKS-Cluster ausgeführt werden.
Workloadarchitektur: Konfigurieren Sie das Abwracken von Prometheus-Metriken mit Container Insights. Container Insights, die Teil von Azure Monitor sind, bieten ein nahtloses Onboarding zum Sammeln von Prometheus-Metriken. Weitere Informationen finden Sie unter Konfigurieren des Scrapings von Prometheus-Metriken .
Clusterarchitektur: Verwenden Sie eine Strategie für mehrere Regionen , indem Sie AKS-Cluster bereitstellen, die in verschiedenen Azure-Regionen bereitgestellt werden, um die Verfügbarkeit zu maximieren und Geschäftskontinuität zu gewährleisten. Workloads mit Internetzugriff sollten Azure Front Door oder Azure Traffic Manager nutzen, um Datenverkehr global über AKS-Cluster zu leiten.
Clusterarchitektur: Operationalisieren von Clustern und Podkonfigurationsstandards mit Azure Policy. Azure Policy können dazu beitragen, die durchsetzungsbasierten Und Schutzmaßnahmen im großen Stil zentral und konsistent auf Ihre Cluster anzuwenden. Zudem kann gesteuert werden, welche Funktionen den Pods gewährt werden und ob etwas nicht der Unternehmensrichtlinie entspricht.
Workloadarchitektur: Verwenden Sie Plattformfunktionen in Ihrem Release engineering-Prozess. Kubernetes und Eingangscontroller unterstützen viele erweiterte Bereitstellungsmuster, die in Ihren Releaseentwicklungsprozess einbezogen werden können. Betrachten Sie Muster wie blaugrüne Bereitstellungen oder Canary-Releases.
Cluster- und Workloadarchitekturen: Verwenden Sie für unternehmenskritische Workloads bereitstellungen auf Stempelebene blau/grün. Automatisieren Sie Ihre unternehmenskritischen Entwurfsbereiche, einschließlich Bereitstellung und Tests.

Weitere Vorschläge finden Sie unter Prinzipien der Säule "Operational Excellence".

Azure Advisor gibt auch Empfehlungen für eine Teilmenge der im folgenden Richtlinienabschnitt aufgeführten Elemente aus, z. B. nicht unterstützte AKS-Versionen und nicht konfigurierte Diagnoseeinstellungen. Ebenso werden Workloadempfehlungen für die Verwendung des Standardnamespaces ausgesprochen.

Richtliniendefinitionen

Azure Policy bietet verschiedene integrierte Richtliniendefinitionen, die sowohl für die Azure-Ressource als auch für AKS gelten, z. B. Standardrichtliniendefinitionen, und die Verwendung des Azure Policy-Add-Ons für Kubernetes, auch innerhalb des Clusters. Viele der Azure-Ressourcenrichtlinien sind sowohl in Audit/Deny enthalten, als auch in einer Variante Bereitstellen, wenn nicht vorhanden .

Es gibt eine Vielzahl von Richtlinien, und wichtige Richtlinien im Zusammenhang mit dieser Säule werden hier zusammengefasst. Eine ausführlichere Ansicht finden Sie unter Integrierte Richtliniendefinitionen für Kubernetes.

Clusterarchitektur

  • Azure Policy-Add-On für Kubernetes
  • GitOps-Konfigurationsrichtlinien
  • Richtlinien für Diagnoseeinstellungen
  • AKS-Versionseinschränkungen
  • Befehlsaufruf verhindern

Cluster- und Workloadarchitektur

  • Einschränkungen für die Namespacebereitstellung

Zusätzlich zu den integrierten Richtlinien können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure Policy-Add-On für Kubernetes erstellt werden. Dadurch können Sie zusätzliche Sicherheitseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.

Effiziente Leistung

Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Es wird empfohlen, die Prinzipien der Leistungseffizienz zu überprüfen.

Bei der Diskussion über die Leistung mit Azure Kubernetes Service ist es wichtig, zwischen Clusterleistung und Workloadleistung zu unterscheiden. Die Clusterleistung ist eine gemeinsame Verantwortung zwischen dem Clusteradministrator und ihrem Ressourcenanbieter, während die Workloadleistung die Domäne eines Entwicklers ist. Azure Kubernetes Service umfasst Überlegungen und Empfehlungen für beide Rollen.

In der Entwurfsprüfliste und der Unten aufgeführten Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl für clusterarchitektur, Workloadarchitektur oder beides geeignet ist.

Prüfliste für den Entwurf

Wenn Sie Entwurfsentscheidungen für Azure Kubernetes Service treffen, lesen Sie die Prinzipien der Leistungseffizienz.

  • Cluster- und Workloadarchitekturen: Führen Sie eine detaillierte Kapazitätsplanübung durch, die SKU, Einstellungen für die autoskalierte Skalierung, IP-Adressierung und Failover berücksichtigt.
  • Clusterarchitektur: Aktivieren Sie die automatische Clusterskalierung , um die Anzahl der Agentknoten in Den Anforderungen an die Antwortworkload automatisch anzupassen.
  • Clusterarchitektur: Verwenden Sie die automatische Horizontale Podskalierung , um die Anzahl der Pods in einer Bereitstellung abhängig von der CPU-Auslastung oder anderen ausgewählten Metriken anzupassen.
  • Cluster- und Workloadarchitekturen: Führen Sie fortlaufende Auslastungstests durch, die sowohl die automatische Skalierung des Pods als auch des Clusters ausführen.
  • Cluster- und Workloadarchitekturen: Trennen Sie Workloads in verschiedene Knotenpools, um unabhängiges Anrufen zu ermöglichen.

Empfehlungen

Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre Azure Kubernetes Service-Konfiguration auf Leistung zu optimieren.

Empfehlung Vorteil
Cluster- und Workloadarchitekturen: Entwickeln Sie einen detaillierten Kapazitätsplan, und überprüfen Und überarbeiten Sie sie ständig. Nach der Formalisierung Ihres Kapazitätsplans sollte er häufig aktualisiert werden, indem die Ressourcennutzung des Clusters kontinuierlich überwacht wird.
Clusterarchitektur: Aktivieren Sie die automatische Clusterskalierung , um die Anzahl der Agentknoten als Reaktion auf Ressourceneinschränkungen automatisch anzupassen. Diese Fähigkeit zum automatischen Hoch- oder Herunterskalieren der Knotenanzahl in Ihrem AKS-Cluster ermöglicht Ihnen, einen effizienten, kostengünstigen Cluster zu betreiben.
Cluster- und Workloadarchitekturen: Trennen Sie Workloads in verschiedene Knotenpools, und erwägen Sie die Skalierung von Benutzerknotenpools. Im Gegensatz zu Systemknotenpools, die immer ausgeführte Knoten erfordern, ermöglichen Benutzerknotenpools das Hoch- oder Herunterskalieren.
Workloadarchitektur: Verwenden Sie erweiterte AKS-Planerfeatures. Hilft bei der Steuerung des Ressourcenausgleichs für Workloads, die diese benötigen.
Workloadarchitektur: Verwenden Sie aussagekräftige Metriken für die Workloadskalierung. Nicht alle Skalierungsentscheidungen können von CPU- oder Arbeitsspeichermetriken abgeleitet werden. Häufig werden Überlegungen zur Skalierung von komplexeren oder sogar externen Datenpunkten berücksichtigt. Verwenden Sie KEDA , um ein aussagekräftiges Regelsatz für die automatische Skalierung basierend auf Signalen zu erstellen, die für Ihre Workload spezifisch sind.

Weitere Vorschläge finden Sie unter Prinzipien der Säule "Leistungseffizienz".

Richtliniendefinitionen

Azure Policy bietet verschiedene integrierte Richtliniendefinitionen, die sowohl für die Azure-Ressource als auch für AKS gelten, z. B. Standardrichtliniendefinitionen, und die Verwendung des Azure Policy-Add-Ons für Kubernetes, auch innerhalb des Clusters. Viele der Azure-Ressourcenrichtlinien sind sowohl in Audit/Deny enthalten, als auch in einer Variante Bereitstellen, wenn nicht vorhanden .

Es gibt eine Vielzahl von Richtlinien, und wichtige Richtlinien im Zusammenhang mit dieser Säule werden hier zusammengefasst. Eine ausführlichere Ansicht finden Sie unter Integrierte Richtliniendefinitionen für Kubernetes.

Cluster- und Workloadarchitektur

  • CPU- und Arbeitsspeicherressourcengrenzwerte

Zusätzlich zu den integrierten Richtlinien können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure Policy-Add-On für Kubernetes erstellt werden. Dadurch können Sie zusätzliche Sicherheitseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.

Zusätzliche Ressourcen

Azure Architecture Center-Anleitung

Leitfaden zum Cloud Adoption Framework

Nächste Schritte