Schätzen der Clustergröße – Knoten

Abgeschlossen

Sie müssen nun ermitteln, welche Art von Knoten für virtuelle Maschinen (Virtual Maschines, VMs) Sie benötigen und wie viele Knoten Sie ausführen müssen.

Welche VM-Größe benötigen Sie?

Bei Azure Kubernetes Service (AKS) ist jeder Knoten in Ihrem Cluster eine Azure-VM. VMs sind mit verschiedenen Spezifikationen verfügbar, um die Anforderungen verschiedener Anwendungstypen zu unterstützen. Einige Anwendungen benötigen möglicherweise mehr Verarbeitungsleistung oder Arbeitsspeicher oder schnelleren Speicher. Sie müssen eine VM-Kategorie und -Instanz auswählen, die die Anforderungen Ihrer Anwendung erfüllen.

Dabei sollten Sie sicherstellen, dass der Typ über genügend Arbeitsspeicher und Verarbeitungsleistung für Ihre Anwendung verfügt. Denken Sie daran, dass für Ihre Anwendung nicht der gesamte Arbeitsspeicher und die vollständige Verarbeitungsleistung zur Verfügung stehen. Ein Teil dieser Leistung wird für das Betriebssystem und für Kubernetes-Systemkomponenten benötigt. AKS reserviert automatisch eine bestimmte Menge an Arbeitsspeicher und Verarbeitungsleistung, um sicherzustellen, dass diese kritischen Systemkomponenten nach Bedarf ausgeführt werden können.

Der als Teil eines AKS-Clusters bereitgestellte VM-Standardtyp ist eine universelle D2 v3 VM, eine VM mit zwei Kernen mit 8 Gigabyte Speicher. AKS reserviert 100 Millicores des Prozessors und 3,55 GiB Arbeitsspeicher, sodass 1.900 Millicores (1,9 Kerne) und 5,45 GiB Arbeitsspeicher für Ihre Anwendung verfügbar bleiben.

Tipp

Die reservierte Prozessorleistung und der reservierte Arbeitsspeicher variieren je nach Typ der ausgewählten VM. Dieser Umfang wird mit zunehmender VM-Größe proportional kleiner.

Ein weiterer Aspekt, den es zu berücksichtigen gilt, sind isolierte Ressourcen. Angenommen, Sie stellen drei Anwendungen auf einem D2 v3-Knoten bereit. Jede dieser Anwendungen erfordert 600 Millicores vom Prozessor und 500 Mi Arbeitsspeicher. Sobald Sie diese Anwendungen bereitstellen, bleiben 100 Millicores des Prozessors und etwa 2,05 GiB nicht genutzter Arbeitsspeicher übrig. Würden Sie eine vierte Instanz der Anwendung bereitstellen, müsste Sie sie an einen neuen Knoten senden, da die verbleibenden 100 Millicores nicht ausreichen. Allerdings würden damit jetzt 2 GiB Arbeitsspeicher auf dem Knoten ungenutzt bleiben. Diese Speicherressource wird als isoliert bezeichnet.

Eine ideale VM verfügt über ausreichend Kapazität für die Ausführung Ihrer Workloads, ohne dass isolierte Ressourcen entstehen. Wenn Workloads dynamisch hoch- und herunterskaliert werden, benötigen Sie genügend Ressourcen, um typische Nutzungsszenarien abdecken zu können, aber auch die Flexibilität, bei Bedarf hochskalieren zu können.

Wie viele Knoten benötigen Sie?

Ihre Anwendung sollte immer verfügbar und in der Lage sein, Fehler der zugrunde liegenden Knoten zu behandeln. Sie können Resilienz mithilfe mehreren Replikate der Anwendung sicherstellen, die Sie auf mehrere Knoten verteilen.

AKS verfügt über Knotenpools. Das sind Gruppen von VMs desselben Typs. Sie können mehrere Knotenpools nutzen. So könnten Sie beispielsweise einen Knotenpool haben, der universelle VMs enthält, einen mit speicheroptimierten VMs und einen, der mit GPUs ausgestattete VMs enthält. Sie können dann das native Planungsfeature von Kubernetes verwenden, um sicherzustellen, dass Ihre Workloads im passenden Knotenpool und auf dem geeigneten VM-Typ bereitgestellt werden.

Knotenpools können einen von zwei Modi unterstützen: den System- oder den Benutzer-Modus. In Systemknotenpools werden kritische Systempods ausgeführt, die für den Betrieb Ihres Kubernetes-Clusters wichtig sind, einschließlich Diensten wie Speichertreibern, DNS oder Metrikservern. In Benutzerknotenpools werden Ihre Anwendungen ausgeführt.

In einer Standardkonfiguration enthält ein AKS-Cluster einen einzelnen Systemknotenpool, der zum Ausführen von allem verwendet wird. Falls gewünscht, können Sie zusätzliche System- oder Benutzerknotenpools hinzufügen und Ihre Anwendungs pods so konfigurieren, dass sie ausschließlich in den Benutzerknotenpools ausgeführt werden. Kritische Systempods werden nur in den Systemknotenpools ausgeführt. Durch die Verwendung von System- und Benutzerknotenpools können Sie verhindern, dass falsch konfigurierte Anwendungen den Betrieb kritischer Systemdienste beeinträchtigen und möglicherweise dazu führen, dass der Cluster ausfällt.

Kubernetes kann bei Bedarf auch Knoten hinzufügen oder entfernen. Wenn Sie dieses Feature verwenden möchten, müssen Sie eine Obergrenze für die maximale Anzahl von Knoten definieren, auf die Kubernetes hochskalieren kann. Planen Sie dann Ihren Netzwerkentwurf gemäß dieser maximalen Anzahl. Beachten Sie, dass Sie mindestens einen zusätzlichen Knoten pro Cluster benötigen, damit der Updateprozess ordnungsgemäß ausgeführt werden kann.

Tipp

Sie können die Anzahl der Knoten konfigurieren, die zu einem bestimmten Zeitpunkt aktualisiert werden, wobei ein Knoten der Standardwert ist. Das Upgraden mehrerer Knoten auf einmal kann die insgesamt erforderliche Zeit für das Upgrade eines Clusters verringern. Sie müssen zusätzliche Knoten einplanen.

Wie viele Knoten sollten Sie ausführen?

Zum Ermitteln der Anzahl der auszuführenden Knoten müssen Sie die Prozessor- und Arbeitsspeicheranforderungen Ihrer Anwendung verstehen. Das Entwicklungsteam hat Ihnen die Ergebnisse seiner Leistungstests inklusive Details darüber geliefert, wie viele Prozessor- und Arbeitsspeicherressourcen die Dienste benötigen. Die Ergebnisse umfassen die grundlegenden Anforderungen sowie die maximal benötigten Ressourcen für Zeiträume mit hoher Auslastung:

Dienst Prozessor min/max Arbeitsspeicher min/max
Website-Front-Ends 250 m/1.000 m 250 Mi/1 Gi
Identitäts-API 100 m/500 m 250 Mi/500 Mi
Katalog-API 500 m/1.000 m 1 Gi/1 Gi
Bestellungs-API 100 m/1.000 m 100 Mi/1 Gi
Bestellungs-Hilfsdienst 100 m/1.000 m 100 Mi/1 Gi
Warenkorb-API 100 m/1.000 m 500 Mi/500 Mi
Marketing-API 250 m/750 m 500 Mi/1 Gi
Standort-API 100 m/500 m 100 Mi/500 Mi

Tipp

  • Kubernetes misst die Prozessorauslastung in Millicores (Tausendsteln eines Kerns). Daher entsprechen 100 m einem Zehntel eines Kerns und 1.000 m einem einzelnen Prozessorkern.
  • Sie können den Arbeitsspeicher auf verschiedene Arten messen. Die Beispiele im Diagramm mit den Ergebnissen des Leistungstests verwenden Mi und Gi, die Zweierpotenzäquivalente von Megabyte und Gigabyte. 500 Mi werden im Allgemeinen als 500 Megabyte und 1 Gi als 1 Gigabyte bezeichnet.

Dimensionieren Ihrer Knoten

Sie haben die Mindestanzahl der Replikate ermittelt, die für jeden Dienst ausgeführt werden müssen, sowie die das Minimum an Prozessorkernen und Arbeitsspeicher, das für jeden Dienst erforderlich sind. Als Ausgangspunkt bietet Ihnen diese Berechnung also 1,5 Kerne und 2,8 GiB Arbeitsspeicher. Wenn die Anwendung auf die maximale Anzahl von Replikaten skaliert wird und die maximale Anzahl an Prozessorkernen und Arbeitsspeicher verwendet, benötigt sie 53 Kerne und 50 GB Arbeitsspeicher.

In diesem Szenario sind die Workloads CPU-intensiv. Würden Sie den Standard-VM-Typ „Universell“ der D2 v3-Serie verwenden, würden Sie eine große Zahl solcher VMs benötigen, um die Prozessoranforderungen des Workloads zu erfüllen. Diese Konfiguration würde zu einer großen Menge an nicht genutztem Arbeitsspeicher auf den VMs führen. Betrachten wir nun einen VM-Typ, der für rechenintensive Workloads vorgesehen ist. Ein Vertreter der Fsv2-Serie würde beispielsweise weniger VMs benötigen, um die Prozessoranforderungen zu erfüllen. Auch würde ein geringerer Umfang an nicht genutztem Arbeitsspeicher entstehen.

Der VM-Typ F8s v2 verfügt über 8 Kerne und 16 GB Arbeitsspeicher. Mit den AKS-Ressourcenreservierungen erhalten Sie 7820 Millicores und 12,65 GiB für jeden Knoten. Bei Ausführung mit maximaler Skalierung würden Sie sieben VMs benötigen, um die Workloads verarbeiten zu können.

Als Nächstes müssen Sie sich das Netzwerk ansehen.