Azure Well-Architected Framework-Bewertung – Azure Kubernetes Service (AKS)
Dieser Artikel enthält bewährte Methoden für Azure Kubernetes Service (AKS). Der Leitfaden basiert auf den fünf Säulen der Architektur-Exzellenz:
- Zuverlässigkeit
- Sicherheit
- Kostenoptimierung
- Betriebliche Effizienz
- Effiziente Leistung
Wir gehen davon aus, dass Sie die Prinzipien des Systemdesigns kennen, über Kenntnisse im Azure Kubernetes Service verfügen und mit ihren Features vertraut sind. Weitere Informationen finden Sie unter Azure Kubernetes Service.
Voraussetzungen
Das Verständnis der Säulen des Well-Architected Framework kann dazu beitragen, eine qualitativ hochwertige, stabile und effiziente Cloudarchitektur zu erzeugen. Es wird empfohlen, Ihre Arbeitsauslastung mithilfe der Bewertung von Azure Well-Architected Framework zu überprüfen.
Im 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 (AKS)-Cluster - und Microservices-Architektur auf Azure Kubernetes Service zu beginnen. Überprüfen Sie außerdem den AKS-Zielzonenbeschleuniger, der einen Architekturansatz und eine Referenzimplementierung zum Vorbereiten von Landing Zone-Abonnements für einen skalierbaren Azure Kubernetes Service (AKS)-Cluster bereitstellt.
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 fehlgeschlagene Instanzen zu minimieren.
Bei der Erläuterung der Zuverlässigkeit mit Azure Kubernetes Service ist es wichtig, zwischen Clusterzulässigkeit und Arbeitsauslastungszuzulässigkeit zu unterscheiden. Die Clusterzuverlässigkeit ist eine gemeinsame Verantwortung zwischen dem Clusteradministrator und ihrem Ressourcenanbieter, während die Arbeitsauslastungszuverlässigkeit die Domäne eines Entwicklers ist. Azure Kubernetes Service umfasst Überlegungen und Empfehlungen für beide Rollen.
In der Entwurfsprüfliste und liste der unten aufgeführten Empfehlungen werden Legenden erstellt, um anzugeben, ob jede Auswahl auf Clusterarchitektur, Workloadarchitektur oder beides anwendbar ist.
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 skalieren kann, einschließlich der Behandlung von Failoverdatenverkehr in Multiclustertopologien.
- Clusterarchitektur: Überprüfen Sie die bewährten Methoden für die Überwachung von Kubernetes mit Azure Monitor , um die beste Überwachungsstrategie für Ihre Workloads zu ermitteln.
- Workloadarchitektur: Stellen Sie sicher, dass Arbeitslasten erstellt werden, um die horizontale Skalierung zu unterstützen und die Anwendungsbereitschaft und den Integritätsbericht zu melden.
- Cluster- und Workloadarchitekturen: Stellen Sie sicher, dass Ihre Workload in Benutzerknotenpools ausgeführt wird, und wählen Sie die richtige SKU-Größe aus. Schließen Sie mindestens zwei Knoten für Benutzerknotenpools und drei Knoten für den Systemknotenpool ein.
- Clusterarchitektur: Verwenden Sie die AKS Uptime SLA, um Verfügbarkeitsziele für Produktionsworkloads zu erfüllen.
AKS-Konfigurationsempfehlungen
Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre AKS-Konfiguration für Zuverlässigkeit zu optimieren.
Empfehlung | Vorteil |
---|---|
Cluster- und Workloadarchitekturen: Steuern der 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 Tolerationen können Pods ohne übereinstimmende Knotenmarkierer auf beschrifteten Knoten geplant werden, wodurch nicht verwendete Ressourcen auf den Knoten verbraucht werden können, aber pods priorität, die die übereinstimmende Knotenauswahl definieren. 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 Clustergröße sicher. | Azure CNI ist für bestimmte Szenarien erforderlich, z. B. Windows-basierte Knotenpools, bestimmte Netzwerkanforderungen und Kubernetes-Netzwerkrichtlinien. Verweisen Sie auf Kubenet im Vergleich zu Azure CNI , um weitere Informationen zu finden. |
Cluster- und Workloadarchitekturen: Verwenden Sie die AKS Uptime SLA für Cluster der Produktionsklasse. | 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: Überprüfen Sie die bewährten Methoden für die Überwachung von Kubernetes mit Azure Monitor , um die beste Überwachungsstrategie für Ihre Workloads zu ermitteln. | N/V |
Clusterarchitektur: Verwenden Sie Verfügbarkeitszonen , um die Resilienz innerhalb einer Azure-Region zu maximieren, indem Sie AKS-Agent-Knoten über physisch getrennte Rechenzentren verteilen. | Durch die Verteilung von Knotenpools über mehrere Zonen hinweg werden Knoten in einem Knotenpool weiterhin ausgeführt, auch wenn eine andere Zone abgelaufen ist. Wenn Colocality-Anforderungen vorhanden sind, kann entweder eine normale AKS-basierte AKS-Bereitstellung in einer einzelnen Zone oder Näherungsgruppen verwendet werden, um die Internodelatenz zu minimieren. |
Clusterarchitektur: Übernehmen Sie eine Multiregionsstrategie , indem Sie AKS-Cluster bereitstellen, die in verschiedenen Azure-Regionen bereitgestellt werden, um die Verfügbarkeit zu maximieren und Geschäftskontinuität bereitzustellen. | Mit dem Internet gerichtete Workloads sollten Azure Front Door oder Azure Traffic Manager nutzen, um den Datenverkehr global über AKS-Cluster zu leiten. |
Cluster- und Workloadarchitekturen: Definieren von Pod-Ressourcenanforderungen und -Beschränkungen in Anwendungsbereitstellungsmanifesten und Erzwingen mit Azure-Richtlinie. | Container-CPU- und Speicherressourcengrenzwerte sind erforderlich, um die Ressourcenauslastung in Ihrem Kubernetes-Cluster zu verhindern. |
Cluster- und Workloadarchitekturen: Lassen Sie den Systemknotenpool von Anwendungsworkloads isoliert. | Systemknotenpools erfordern eine VM-SKU von mindestens 2 vCPUs und 4 GB Arbeitsspeicher, aber 4 vCPU oder mehr wird empfohlen. Ausführliche Informationen zu den Anforderungen finden Sie unter System- und Benutzerknotenpools. |
Cluster- und Workloadarchitekturen: Trennen Sie Anwendungen basierend auf bestimmten Anforderungen zu dedizierten Knotenpools. | Anwendungen können dieselbe Konfiguration nutzen und GPU-fähige VMs, CPU oder speicheroptimierte VMs oder die Möglichkeit zum Skalieren auf Null benötigen. Vermeiden Sie eine große Anzahl von Knotenpools, um zusätzlichen Verwaltungsaufwand zu reduzieren. |
Clusterarchitektur: Verwenden Sie ein NAT-Gateway für Cluster, die Workloads ausführen, die viele gleichzeitige ausgehende Verbindungen herstellen. | Um Zuverlässigkeitsprobleme mit Azure Load Balancer-Einschränkungen mit hohem gleichzeitigem ausgehendem Datenverkehr zu vermeiden, unterstützen wir stattdessen ein NAT-Gateway , um zuverlässigen Ausgehenden Datenverkehr im großen Maßstab zu unterstützen. |
Weitere Vorschläge finden Sie unter Grundsätze der Zuverlässigkeitssäule.
Azure Policy
Azure Kubernetes Service bietet eine Vielzahl integrierter Azure-Richtlinien, die sowohl für die Azure-Ressource wie typische Azure-Richtlinien gelten als auch das Azure-Richtlinien-Add-On für Kubernetes, auch innerhalb des Clusters. Es gibt zahlreiche wichtige Richtlinien im Zusammenhang mit dieser Säule, die hier zusammengefasst sind. Eine detailliertere Ansicht finden Sie in den integrierten Richtliniendefinitionen für Kubernetes.
Cluster- und Workloadarchitektur
- Cluster verfügen über Bereitschafts- oder Liveness-Integritätssonden, die für Ihre Pod-Spezifikation konfiguriert sind.
Zusätzlich zu den integrierten Azure-Richtliniendefinitionen können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure-Richtlinien-Add-On für Kubernetes erstellt werden. Auf diese Weise 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 Anwendungsauslastung stärken kann, empfehlen wir Ihnen, die Prinzipien des Sicherheitsdesigns zu überprüfen. Wenn Ihr Azure Kubernetes Service-Cluster so konzipiert sein muss, dass ein sensibler Workload ausgeführt wird, der die gesetzlichen Anforderungen des Payment Card Industry Data Security Standard (PCI-DSS 3.2.1) erfüllt, überprüfen Sie den AKS-regulierten Cluster für PCI-DSS 3.2.1.
Informationen zur Unterstützung und Anforderungen von DoD Impact Level 5 (IL5) mit AKS finden Sie unter Azure Government IL5 Isolationsanforderungen.
Bei der Erörterung der Sicherheit mit Azure Kubernetes Service ist es wichtig, zwischen Clustersicherheit und Workloadsicherheit zu unterscheiden. Die 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 Entwurfsprüfliste und liste der unten aufgeführten Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl auf Clusterarchitektur, Workloadarchitektur oder beides anwendbar ist.
Prüfliste für den Entwurf
- Clusterarchitektur: Verwenden Sie verwaltete Identitäten , um das Verwalten und Drehen von Dienstprinzipien zu vermeiden.
- Clusterarchitektur: Verwenden Sie kubernetes rollenbasierte Zugriffssteuerung (RBAC) mit Microsoft Entra ID für den geringsten Berechtigungszugriff und minimieren Sie die Gewährung von Administratorrechten zum Schutz der Konfiguration und geheimen Zugriff.
- Clusterarchitektur: Verwenden Sie Microsoft Defender für Container mit Azure Sentinel , um Bedrohungen in Ihrem Cluster und Ihren Workloads zu erkennen und schnell darauf zu reagieren, die auf ihnen ausgeführt werden.
- Clusterarchitektur: Stellen Sie einen privaten AKS-Cluster bereit, um sicherzustellen, dass der Clusterverwaltungsdatenverkehr auf Ihrem API-Server in Ihrem privaten Netzwerk verbleibt. Oder verwenden Sie die Api-Server-Zulassungsliste für nicht private Cluster.
- Workloadarchitektur: Verwenden Sie eine Webanwendungsfirewall, um HTTP(S)-Datenverkehr zu sichern.
- Workloadarchitektur: Stellen Sie sicher, dass Ihre CI/CID-Pipeline mit containerfähigem Scannen gehärtet ist.
Empfehlungen
Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre AKS-Konfiguration für sicherheit zu optimieren.
Empfehlung | Vorteil |
---|---|
Clusterarchitektur: Verwenden Sie die Microsoft Entra-Integration. | Die Verwendung von Microsoft Entra ID zentralisiert die Identitätsverwaltungskomponente. 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 mit Microsoft Entra ID bei Azure Container Registry. | AKS und Microsoft Entra ID ermöglichen die Authentifizierung mit der Azure-Containerregistrierung, ohne dass geheime imagePullSecrets Schlüssel verwendet werden. Weitere Informationen finden Sie unter " Authenticate with Azure Container Registry" von Azure Kubernetes Service . |
Clusterarchitektur: Sichern sie den Netzwerkdatenverkehr mit Ihrem API-Server mit privatem AKS-Cluster. | Standardmäßig wird der Netzwerkdatenverkehr zwischen Ihren Knotenpools und dem API-Server in das Microsoft-Backbone-Netzwerk übertragen. Mit einem privaten Cluster können Sie sicherstellen, dass der Netzwerkdatenverkehr mit 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 den Datenverkehr, der Ihren Cluster-API-Server erreichen kann, weiterhin einschränken, indem Sie die autorisierte IP-Bereichsfunktion verwenden. Schließen Sie Quellen wie die öffentlichen IPs Ihrer Bereitstellungsbuild-Agents, die Betriebsverwaltung und den Ausgangspunkt von Knotenpools (z. B. Azure Firewall) ein. |
Clusterarchitektur: Schützen des API-Servers 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 Kubernetes rollenbasierte Zugriffssteuerung (RBAC) in Microsoft Entra ID, um den Zugriff auf den API-Server zu steuern. Deaktivieren Sie lokale Konten , um den gesamten Clusterzugriff mithilfe von Microsoft Entra ID-basierten Identitäten zu erzwingen. |
Clusterarchitektur: Verwenden Sie Azure-Netzwerkrichtlinien oder Calico. | Sichern und Steuern des Netzwerkdatenverkehrs zwischen Pods in einem Cluster. |
Clusterarchitektur: Sichere Cluster und Pods mit Azure-Richtlinie. | Die Azure-Richtlinie kann dazu beitragen, umfassende Durchsetzung und Sicherheitsvorkehrungen für Ihre Cluster auf eine zentralisierte, konsistente Weise anzuwenden. Außerdem können Sie damit steuern, welche Funktionen den Pods gewährt werden, und kontrollieren, ob etwas nicht der Unternehmensrichtlinie entspricht. |
Clusterarchitektur: Sicherer Containerzugriff 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 Webanwendungsfirewall, um HTTP(S)-Datenverkehr zu sichern. | Um eingehenden Datenverkehr auf potenzielle Angriffe zu überprüfen, verwenden Sie eine Webanwendungsfirewall wie azure Web Application Firewall (WAF) auf Azure-App lication Gateway oder Azure Front Door. |
Clusterarchitektur: Steuern des Clusterausgangsverkehrs. | Stellen Sie sicher, dass der ausgehende Datenverkehr Ihres Clusters über einen Netzwerksicherheitspunkt wie azure Firewall oder einen HTTP-Proxy übergeben wird. |
Clusterarchitektur: Verwenden Sie die Open-Source-Microsoft Entra Workload-ID und den Secrets Store-CSI-Treiber mit Azure Key Vault. | Schützen und Drehen von geheimen Schlüsseln, Zertifikaten und Verbindungszeichenfolge in Azure Key Vault mit starker Verschlüsselung. Stellt ein Zugriffsüberwachungsprotokoll bereit und bewahrt kerne geheime Schlüssel aus der Bereitstellungspipeline auf. |
Clusterarchitektur: Verwenden Sie Microsoft Defender für Container. | Überwachen und verwalten Sie die Sicherheit Ihrer Cluster, Container und deren Anwendungen. |
Weitere Vorschläge finden Sie unter Prinzipien der Säule „Sicherheit“.
Azure Advisor trägt dazu bei, den Azure Kubernetes-Dienst sicherzustellen und zu verbessern. Es werden Empfehlungen für eine Teilmenge der elemente im folgenden Richtlinienabschnitt aufgeführt, z. B. Cluster ohne RBAC konfiguriert, fehlende Microsoft Defender-Konfiguration, uneingeschränkter Netzwerkzugriff auf den API-Server. Ebenso werden Arbeitsauslastungsempfehlungen für einige der Elemente der Pod-Sicherheitsinitiative erstellt. Ü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, z. B. Standardrichtliniendefinitionen, und die Verwendung des Azure-Richtlinien-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" verwendet.
Es gibt zahlreiche wichtige Richtlinien im Zusammenhang mit dieser Säule, die hier zusammengefasst sind. Eine detailliertere Ansicht finden Sie in den integrierten Richtliniendefinitionen für Kubernetes.
Clusterarchitektur
- Microsoft Defender für cloudbasierte Richtlinien
- Authentifizierungsmodus und Konfigurationsrichtlinien (Microsoft Entra ID, RBAC, lokale Authentifizierung deaktivieren)
- API Server-Netzwerkzugriffsrichtlinien, einschließlich privater Cluster
Cluster- und Workloadarchitektur
- Kubernetes-Cluster-Pod-Sicherheitsinitiativen Linux-basierte Workloads
- Einschließen von Pod- und Containerfunktionsrichtlinien wie AppArmor, Sysctl, Sicherheitskappen, SELinux, seccomp, privilegierte Container, Anmeldeinformationen für die AutoMount-Cluster-API
- Bereitstellungs-, Volumetreiber- und Dateisystemrichtlinien
- Pod/Container-Netzwerkrichtlinien, z. B. Hostnetzwerk, Port, zulässige externe IPs, HTTPs und interne Lastenausgleichsgeräte
Azure Kubernetes Service-Bereitstellungen verwenden häufig auch die 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, die 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-Richtlinien-Add-On für Kubernetes erstellt werden. Auf diese Weise 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 unsere Empfehlungen zur Sicherheitshärtung basierend auf der 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 Anleitungen in diesem Artikel befolgen, empfehlen wir Ihnen, die folgenden Ressourcen zu überprüfen:
- Prinzipien der Kostenoptimierung.
- Wie Das Preis- und Kostenmanagement in Azure Kubernetes Service (AKS) im Vergleich zu Amazon Elastic Kubernetes Service (Amazon EKS) funktioniert.
- Wenn Sie AKS lokal oder am Edge ausführen, können Azure-Hybridvorteil auch verwendet werden, um die Kosten bei der Ausführung containerisierter Anwendungen in diesen Szenarien weiter zu reduzieren.
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 Entwurfsprüfliste und Liste der Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl auf Clusterarchitektur, Workloadarchitektur oder beides anwendbar ist.
Zur Optimierung der Clusterkosten wechseln Sie 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 autocaler, 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 verwaltete Datenträgergröße an workloadanforderungen aus. | Wenn Sie Ihre Auswahl an Ihre Workloadanforderungen anpassen, stellen Sie sicher, dass Sie nicht für nicht benötigte Ressourcen bezahlen. |
Clusterarchitektur: Wählen Sie den richtigen Instanztyp für virtuelle Computer aus. | Die Auswahl des richtigen Instanztyps für virtuelle Computer ist wichtig, da sie sich direkt auf die Kosten für die Ausführung von Anwendungen auf AKS auswirkt. Die Auswahl einer Hochleistungsinstanz ohne ordnungsgemäße Auslastung kann zu verschwendeten Ausgaben führen, während die Auswahl einer weniger leistungsfähigen Instanz zu Leistungsproblemen und zu erhöhten Ausfallzeiten führen kann. Um den richtigen Instanztyp für virtuelle Computer 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 Mischung aus Intel- und ARM-Architekturknoten in einem Cluster, die eine bessere Leistung zu niedrigeren Kosten erzielen können. |
Clusterarchitektur: Wählen Sie virtuelle Azure Spot-Computer aus. | Spot-VMs ermöglichen es Ihnen, nicht genutzte Azure-Kapazität mit erheblichen Rabatten (bis zu 90 % im Vergleich zu den Preisen für die nutzungsbasierte Bezahlung) zu nutzen. Wenn Azure die Kapazität wieder benötigt, entfernt die Azure-Infrastruktur die Spot-Knoten. |
Clusterarchitektur: Wählen Sie die entsprechende Region aus. | Aufgrund vieler Faktoren variiert die Kosten von Ressourcen je nach Region in Azure. Bewerten Sie die Kosten-, Latenz- und Complianceanforderungen, um sicherzustellen, dass Ihre Workload kosteneffizient ausgeführt wird, und es wirkt sich nicht auf Ihre Endbenutzer aus, oder erstellen Sie zusätzliche Netzwerkgebühren. |
Workloadarchitektur: Verwalten kleiner und optimierter Bilder. | Durch das Optimieren Ihrer Bilder können Sie die Kosten reduzieren, da neue Knoten diese Bilder herunterladen müssen. Erstellen Sie Images so, dass der Container so schnell wie möglich gestartet werden kann, um Benutzeranforderungsfehler oder Timeouts zu vermeiden, während die Anwendung gestartet wird, was möglicherweise zu überprovisionieren führt. |
Clusterarchitektur: Aktivieren Sie die Clusterautoskalierung , um die Anzahl der Agentknoten als Reaktion auf übermäßige Ressourcenkapazität automatisch zu reduzieren. | Durch die automatische Skalierung der Anzahl der Knoten in Ihrem AKS-Cluster können Sie einen effizienten Cluster ausführen, wenn die Nachfrage niedrig ist und bei Rückgabe der Nachfrage skaliert wird. |
Clusterarchitektur: Aktivieren Sie die Node Autoprovision zum Automatisieren der VM-SKU-Auswahl. | Node Autoprovision vereinfacht den SKU-Auswahlprozess und entscheidet basierend auf ausstehenden Pod-Ressourcenanforderungen die optimale VM-Konfiguration, um Workloads effizient und kostengünstig auszuführen. |
Workloadarchitektur: Verwenden Sie die horizontale Pod-Autoskaler. | Passen Sie die Anzahl der Pods in einer Bereitstellung abhängig von der CPU-Auslastung oder anderen ausgewählten Metriken an, die Cluster-Skalierungsvorgänge unterstützen. |
Workloadarchitektur: Verwenden Sie die vertikale Pod-Autoscaler (Vorschau). | Rechte für Ihre Pods und dynamisches Festlegen von Anforderungen und Grenzwerten basierend auf der historischen Nutzung. |
Workloadarchitektur: Verwenden Sie kubernetes Event Driven Autocaling (KEDA). | Skalieren basierend auf der Anzahl der verarbeiteten Ereignisse. Wählen Sie aus einem umfangreichen Katalog von 50+ KEDA-Scalern. |
Cluster- und Workloadarchitekturen: Übernehmen Sie eine Cloudfinanzdisziplin und kulturelle Praxis, um den Besitz der Cloudnutzung zu fördern. | Die Grundlage für die Aktivierung der Kostenoptimierung ist die Ausbreitung eines Kostensparclusters. Ein Finanzbetriebsansatz (Financial Operations Approach, FinOps) wird häufig verwendet, um Organisationen bei der Reduzierung der Cloudkosten zu helfen. Es ist eine Praxis, die die Zusammenarbeit zwischen Finanz-, Betriebs- und Entwicklungsteams umfasst, um die Ausrichtung auf Kosteneinsparungen zu fördern und Transparenz für Cloudkosten zu erzielen. |
Clusterarchitektur: Registrieren Sie sich für Azure Reservations oder Azure Savings Plan. | Wenn Sie die Kapazität ordnungsgemäß geplant haben, ist Ihre Workload vorhersehbar und für einen längeren Zeitraum vorhanden, registrieren Sie sich für eine Azure-Reservierung oder einen Sparplan , um Ihre Ressourcenkosten weiter zu reduzieren. |
Clusterarchitektur: Überprüfen Sie die bewährten Methoden für die Überwachung von Kubernetes mit Azure Monitor , um die beste Überwachungsstrategie für Ihre Workloads zu ermitteln. | N/V |
Clusterarchitektur: Konfigurieren des Add-Ons für die AKS-Kostenanalyse. | Mit der Kostenanalyseclustererweiterung erhalten Sie detaillierte Einblicke in Kosten im Zusammenhang mit verschiedenen Kubernetes-Ressourcen in Ihren Clustern oder Namespaces. |
Weitere Vorschläge finden Sie unter "Prinzipien der Kostenoptimierung" und "Optimieren von Kosten in Azure Kubernetes Service".
Richtliniendefinitionen
Obwohl es keine integrierten Richtlinien gibt, die mit der Kostenoptimierung zusammenhängen, können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure-Richtlinien-Add-On für Kubernetes erstellt werden. Auf diese Weise können Sie zusätzliche Kostenoptimierungseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.
Cloudeffizienz
Um Arbeitslasten nachhaltiger und cloudeffizienter zu machen, müssen Sie Anstrengungen rund um die Kostenoptimierung, die Reduzierung der Co2-Emissionen und die Optimierung des Energieverbrauchs kombinieren. Die Optimierung der Kosten der Anwendung ist der erste Schritt, um Workloads nachhaltiger zu gestalten.
Erfahren Sie, wie Sie nachhaltige und effiziente AKS-Workloads in nachhaltigen Software-Engineering-Prinzipien in Azure Kubernetes Service (AKS) erstellen.
Optimaler Betrieb
Die Überwachung und die Diagnose sind von entscheidender Bedeutung. Sie können nicht nur Leistungsstatistiken messen, sondern auch Metriken zur Problembehandlung und schnellen Behebung von Problemen verwenden. Wir empfehlen Ihnen, die Designprinzipien für operative Exzellenz und den Leitfaden für den Betrieb von Day-2 zu überprüfen.
Bei der Diskussion über operative Exzellenz mit Azure Kubernetes Service ist es wichtig, zwischen clusterbetriebstechnischer Exzellenz und Arbeitsauslastungsleistung 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 liste der unten aufgeführten Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl auf Clusterarchitektur, Workloadarchitektur oder beides anwendbar 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 Quellcode-Repository 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 Diagnoseeinstellungen, um sicherzustellen, dass Steuerungsebenen- oder Kern-API-Serverinteraktionen protokolliert werden.
- Cluster- und Workloadarchitekturen: Überprüfen Sie die bewährten Methoden für die Überwachung von Kubernetes mit Azure Monitor , um die beste Überwachungsstrategie für Ihre Workloads zu ermitteln.
- Workloadarchitektur: Die Workload sollte so konzipiert werden, dass Telemetrie ausgegeben wird, die gesammelt werden kann, was auch Livelines und Bereitschaftsstatus umfassen sollte.
- Cluster- und Workloadarchitekturen: Verwenden Sie Chaos engineering-Praktiken, die kubernetes als Ziel verwenden, um Probleme mit der Anwendungs- oder Plattformzulässigkeit zu identifizieren.
- Workloadarchitektur: Optimieren Sie Ihre Workload für den effizienten Betrieb und die Bereitstellung in einem Container.
- Cluster- und Workloadarchitekturen: Erzwingen der Cluster- und Workload-Governance mithilfe von Azure-Richtlinien.
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 Methoden von AKS. | Zum erfolgreichen Erstellen und Ausführen von Anwendungen in AKS gibt es wichtige Überlegungen, die Sie verstehen und implementieren müssen. Hierzu gehören Mehrinstanzenfähigkeit und Scheduler-Features, Cluster- und Podsicherheit oder Business Continuity & Disaster Recovery. |
Cluster- und Workloadarchitekturen: Überprüfen Sie Azure Chaos Studio. | Azure Chaos Studio kann Fehler simulieren und Notfallwiederherstellungssituationen auslösen. |
Cluster- und Workloadarchitekturen: Überprüfen Sie die bewährten Methoden für die Überwachung von Kubernetes mit Azure Monitor , um die beste Überwachungsstrategie für Ihre Workloads zu ermitteln. | N/V |
Clusterarchitektur: Übernehmen Sie eine Multiregionsstrategie , indem Sie AKS-Cluster bereitstellen, die in verschiedenen Azure-Regionen bereitgestellt werden, um die Verfügbarkeit zu maximieren und Geschäftskontinuität bereitzustellen. | Mit dem Internet gerichtete Workloads sollten Azure Front Door oder Azure Traffic Manager nutzen, um den Datenverkehr global über AKS-Cluster zu leiten. |
Clusterarchitektur: Operationalisieren Sie Cluster- und Pods-Konfigurationsstandards mit Azure-Richtlinie. | Die Azure-Richtlinie kann dazu beitragen, umfassende Durchsetzung und Sicherheitsvorkehrungen für Ihre Cluster auf eine zentralisierte, konsistente Weise anzuwenden. Außerdem können Sie damit steuern, welche Funktionen den Pods gewährt werden, und kontrollieren, ob etwas nicht der Unternehmensrichtlinie entspricht. |
Workloadarchitektur: Verwenden Sie Plattformfunktionen in Ihrem Release-Engineering-Prozess. | Kubernetes und Eingangscontroller unterstützen viele erweiterte Bereitstellungsmuster für die Aufnahme in Ihren Release-Engineering-Prozess. Berücksichtigen Sie Muster wie blaugrüne Bereitstellungen oder Canaryversionen. |
Cluster- und Workloadarchitekturen: Verwenden Sie für unternehmenskritische Workloads Stempelstufen-Blau/Grün-Bereitstellungen. | Automatisieren Sie Ihre unternehmenskritischen Entwurfsbereiche, einschließlich Bereitstellung und Tests. |
Weitere Vorschläge finden Sie in den Grundsätzen der operativen Exzellenzsäule.
Azure Advisor gibt außerdem Empfehlungen zu einer Teilmenge der im Richtlinienabschnitt unten aufgeführten Elemente, z. B. nicht unterstützte AKS-Versionen und nicht konfigurierte Diagnoseeinstellungen. Ebenso werden Arbeitsauslastungsempfehlungen zur Verwendung des Standardnamespaces erstellt.
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-Richtlinien-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" verwendet.
Es gibt zahlreiche wichtige Richtlinien im Zusammenhang mit dieser Säule, die hier zusammengefasst sind. Eine detailliertere Ansicht finden Sie in den integrierten Richtliniendefinitionen für Kubernetes.
Clusterarchitektur
- Azure-Richtlinien-Add-On für Kubernetes
- GitOps-Konfigurationsrichtlinien
- Richtlinien für Diagnoseeinstellungen
- AKS-Versionsbeschränkungen
- Befehlsaufruf verhindern
Cluster- und Workloadarchitektur
- Namespacebereitstellungseinschränkungen
Zusätzlich zu den integrierten Richtlinien können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure-Richtlinien-Add-On für Kubernetes erstellt werden. Auf diese Weise 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, eine effiziente Skalierung entsprechend den Anforderungen der Benutzer auszuführen. Wir empfehlen Ihnen, 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 liste der unten aufgeführten Empfehlungen werden Aufrufe vorgenommen, um anzugeben, ob jede Auswahl auf Clusterarchitektur, Workloadarchitektur oder beides anwendbar ist.
Prüfliste für den Entwurf
Wenn Sie Entwurfsentscheidungen für Azure Kubernetes Service treffen, überprüfen Sie die Prinzipien der Leistungseffizienz.
- Cluster- und Workloadarchitekturen: Durchführen und Durchlaufen einer detaillierten Kapazitätsplanübung, die SKU, Einstellungen für die automatische Skalierung, IP-Adressierung und Failoveraspekte umfasst.
- Clusterarchitektur: Aktivieren Sie die Cluster-Autoskalierung , um die Anzahl der Agentknoten bei Anforderungen an die Antwortworkloads automatisch anzupassen.
- Clusterarchitektur: Verwenden Sie die horizontale Pod-Autoskalierung , 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 Pod- als auch die Cluster-Autoskaler ausführen.
- Cluster- und Workloadarchitekturen: Trennen Sie Workloads in verschiedene Knotenpools, die unabhängigesCalling ermöglichen.
Empfehlungen
Sehen Sie sich die folgende Tabelle mit Empfehlungen an, um Ihre Azure Kubernetes Service-Konfiguration für die Leistung zu optimieren.
Empfehlung | Vorteil |
---|---|
Cluster- und Workloadarchitekturen: Entwickeln Sie einen detaillierten Kapazitätsplan, überprüfen und überarbeiten Sie diese kontinuierlich. | Nach der Formalisierung Des Kapazitätsplans sollte er häufig aktualisiert werden, indem die Ressourcenauslastung des Clusters kontinuierlich beobachtet wird. |
Clusterarchitektur: Aktivieren Sie die Automatische Skalierung des Clusters , 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 Skalieren nach oben oder unten. |
Workloadarchitektur: Verwenden Sie die erweiterten Planerfeatures von AKS. | Hilft beim Steuern des Ausgleichs von Ressourcen für Workloads, die sie erfordern. |
Workloadarchitektur: Verwenden Sie aussagekräftige Arbeitsauslastungsskalierungsmetriken. | Nicht alle Skalierungsentscheidungen können von CPU- oder Arbeitsspeichermetriken abgeleitet werden. Häufig kommen Skalierungsüberlegungen aus komplexeren oder sogar externen Datenpunkten. 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 Grundsätze der Leistungseffizienz-Säule.
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-Richtlinien-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" verwendet.
Es gibt zahlreiche wichtige Richtlinien im Zusammenhang mit dieser Säule, die hier zusammengefasst sind. Eine detailliertere Ansicht finden Sie in den integrierten Richtliniendefinitionen für Kubernetes.
Cluster- und Workloadarchitektur
- Cpu- und Arbeitsspeicherressourcenbeschränkungen
Zusätzlich zu den integrierten Richtlinien können benutzerdefinierte Richtlinien sowohl für die AKS-Ressource als auch für das Azure-Richtlinien-Add-On für Kubernetes erstellt werden. Auf diese Weise können Sie zusätzliche Sicherheitseinschränkungen hinzufügen, die Sie in Ihrer Cluster- und Workloadarchitektur erzwingen möchten.
Zusätzliche Ressourcen
Leitfaden zum Azure Architecture Center
- AKS-Basisarchitektur
- Erweiterte AKS-Microservicearchitektur
- AKS-Cluster für eine PCI-DSS-Workload
- AKS-Baseline für Cluster in mehreren Regionen
Leitfaden zum Cloud Adoption Framework
Nächste Schritte
- Bereitstellen eines Azure Kubernetes Service (AKS)-Clusters mithilfe des Azure CLI-Schnellstarts : Bereitstellen eines Azure Kubernetes Service (AKS)-Clusters mithilfe der Azure CLI