Dimensionierungsleitfaden
Übersicht über den Dimensionierungsleitfaden
Planen Sie bei der Bereitstellung von Azure Arc-Datendiensten die richtige Menge an Daten ein:
- Compute
- Arbeitsspeicher
- Storage
Diese Ressourcen werden benötigt für:
- Der Datencontroller
- Verwaltete SQL-Instanzen
- PostgreSQL-Server
Da die Datendienste mit Arc-Unterstützung von Azure auf Kubernetes bereitgestellt werden, können Sie Ihrem Kubernetes-Cluster im Laufe der Zeit flexibel mehr Kapazität durch Rechenknoten oder Speicher hinzufügen. In diesem Leitfaden werden die Mindestanforderungen erläutert und Größenempfehlungen für einige gängige Anforderungen gegeben.
Allgemeine Dimensionierungsanforderungen
Hinweis
Wenn Sie mit den Konzepten in diesem Artikel nicht vertraut sind, informieren Sie sich über die Kubernetes-Ressourcenkontrolle und die Größeneinheiten in Kubernetes.
Die Anzahl der Kerne muss eine ganze Zahl größer oder gleich 1 sein.
Wenn Sie mit Azure CLI (az) bereitstellen, verwenden Sie eine Zweierpotenz, um die Speicherwerte festzulegen. Verwenden Sie insbesondere die Suffixe:
Ki
Mi
Gi
Grenzwerte müssen immer größer als der Anforderungswert sein, sofern angegeben.
Die Grenzwerte für Kerne sind die abrechenbare Metrik für SQL Managed Instance- und PostgreSQL-Server.
Mindestanforderungen für die Bereitstellung
Eine Mindestgröße für die Bereitstellung von Azure Arc-fähigen Datendiensten könnte der Azure Arc-Datencontroller plus eine verwaltete SQL-Instanz plus ein PostgreSQL-Server sein. Für diese Konfiguration benötigen Sie mindestens 16 GB RAM und 4 Kerne als verfügbare Kapazität im Kubernetes-Cluster. Sie sollten sicherstellen, dass die Kubernetes-Knoten eine Mindestgröße von 8 GB RAM und 4 Kernen umfassen und dass auf allen Kubernetes-Knoten eine Gesamtkapazität von 16 GB RAM zur Verfügung steht. Beispielsweise können Sie über einen Knoten mit 32 GB RAM und 4 Kernen oder über zwei Knoten mit jeweils 16 GB RAM und vier Kernen verfügen.
Ausführliche Informationen über die Speicherdimensionierung finden Sie im Artikel zur Speicherkonfiguration.
Dimensionierungsdetails des Datencontrollers
Der Datencontroller ist eine Sammlung von Pods, die im Kubernetes-Cluster bereitgestellt werden, um eine API, den Controllerdienst, den Bootstrapper sowie die Überwachungsdatenbanken und -dashboards zur Verfügung zu stellen. In dieser Tabelle werden die Standardwerte für Arbeitsspeicher- und CPU-Anforderungen sowie CPU-Limits beschrieben.
Podname | CPU-Anforderung | Arbeitsspeicheranforderung | CPU-Grenzwert | Arbeitsspeicherlimit |
---|---|---|---|---|
bootstrapper |
100m |
100Mi |
200m |
200Mi |
control |
400m |
2Gi |
1800m |
2Gi |
controldb |
200m |
4Gi |
800m |
6Gi |
logsdb |
200m |
1600Mi |
2 |
1600Mi |
logsui |
100m |
500Mi |
2 |
2Gi |
metricsdb |
200m |
800Mi |
400m |
2Gi |
metricsdc |
100m |
200Mi |
200m |
300Mi |
metricsui |
20m |
200Mi |
500m |
200Mi |
metricsdc
ist ein daemonset
, das auf jedem der Kubernetes-Knoten in Ihrem Cluster erstellt wird. Die Zahlen in der Tabelle gelten pro Knoten. Wenn Sie allowNodeMetricsCollection = false
in Ihrer Bereitstellungsprofildatei festlegen, bevor Sie den Datencontroller erstellen, wird dieses daemonset
nicht erstellt.
Sie können die Standardeinstellungen für controldb
und den Steuerungspods in der Datencontroller-YAML-Datei überschreiben. Beispiel:
resources:
controller:
limits:
cpu: "1000m"
memory: "3Gi"
requests:
cpu: "800m"
memory: "2Gi"
controllerDb:
limits:
cpu: "800m"
memory: "8Gi"
requests:
cpu: "200m"
memory: "4Gi"
Ausführliche Informationen über die Speicherdimensionierung finden Sie im Artikel zur Speicherkonfiguration.
Dimensionierungsdetails verwalteter SQL-Instanzen
Jede verwaltete SQL-Instanz muss über die folgenden Ressourcenmindestanforderungen und -limits verfügen:
Dienstebene | Allgemeiner Zweck | Unternehmenskritisch |
---|---|---|
CPU-Anforderung | Mindestwert: 1 Höchstwert: 24 Standardwert: 2 |
Mindestwert: 3 Höchster Wert: unbegrenzt Standardwert: 4 |
CPU-Grenzwert | Mindestwert: 1 Höchstwert: 24 Standardwert: 2 |
Mindestwert: 3 Höchster Wert: unbegrenzt Standardwert: 4 |
Arbeitsspeicheranforderung | Mindestwert: 2Gi Höchstwert: 128Gi Standard: 4Gi |
Mindestwert: 2Gi Höchster Wert: unbegrenzt Standard: 4Gi |
Arbeitsspeicherlimit | Mindestwert: 2Gi Höchstwert: 128Gi Standard: 4Gi |
Mindestwert: 2Gi Höchster Wert: unbegrenzt Standard: 4Gi |
Jeder erstellte SQL Managed Instance-Pod umfasst drei Container:
Containername | CPU-Anforderung | Speicheranforderung | CPU-Limit | Speicherlimit | Hinweise |
---|---|---|---|---|---|
fluentbit |
100m |
100Mi |
Nicht angegeben | Nicht angegeben | Die fluentbit -Containerressourcenanforderungen gelten zusätzlich zu den für die verwaltete SQL-Instanz angegebenen Anforderungen. |
arc-sqlmi |
Vom Benutzer angegeben oder nicht angegeben | Vom Benutzer angegeben oder nicht angegeben | Vom Benutzer angegeben oder nicht angegeben | Vom Benutzer angegeben oder nicht angegeben | |
collectd |
Nicht angegeben | Nicht angegeben | Nicht angegeben | Nicht angegeben |
Die Standardvolumegröße für alle persistenten Volumes beträgt 5Gi
.
Details zur PostgreSQL-Serverdimensionierung
Jeder PostgreSQL-Serverknoten muss über die folgenden Mindestressourcen verfügen:
- Arbeitsspeicher:
256Mi
- Kerne: 1
Jeder erstellte PostgreSQL-Serverpod umfasst drei Container:
Containername | CPU-Anforderung | Speicheranforderung | CPU-Limit | Speicherlimit | Hinweise |
---|---|---|---|---|---|
fluentbit |
100m |
100Mi |
Nicht angegeben | Nicht angegeben | Die Anforderungen an die fluentbit -Containerressourcen gelten zusätzlich zu den angegebenen Anforderungen für den PostgreSQL-Server. |
postgres |
Vom Benutzer angegeben oder nicht angegeben | Vom Benutzer angegeben oder 256Mi (Standard). |
Vom Benutzer angegeben oder nicht angegeben | Vom Benutzer angegeben oder nicht angegeben | |
arc-postgresql-agent |
Nicht angegeben | Nicht angegeben | Nicht angegeben | Nicht angegeben |
Kumulative Dimensionierung
Die erforderliche Gesamtgröße einer Umgebung für Azure Arc-fähige Datendienste hängt hauptsächlich von der Anzahl und Größe der Datenbankinstanzen ab. Die Gesamtgröße kann schwierig vorherzusagen sein, da die Anzahl der Instanzen zunehmen und abnehmen und sich der Umfang der für jede Datenbankinstanz erforderlichen Ressourcen ändern könnte.
Die Baselinegröße einer Umgebung für Azure Arc-fähige Datendienste ist die Größe des Datencontrollers, der 4 Kerne und 16 GB RAM erfordert. Dieser können Sie die Summe der Kerne und des Arbeitsspeichers hinzufügen, die für die Datenbankinstanzen erforderlich sind. SQL Managed Instance erfordert einen Pod für jede Instanz. Der PostgreSQL-Server erstellt für jeden Server einen Pod.
Zusätzlich zu den Kernen und dem Arbeitsspeicher, die Sie für jede Datenbankinstanz anfordern, sollten Sie 250m
an Kernen und 250Mi
an RAM für die Agentcontainer hinzufügen.
Beispiel für die Größenberechnung
Anforderungen:
- „SQL1“: 1 verwaltete SQL-Instanz mit 16 GB RAM und 4 Kernen
- „SQL2“: 1 verwaltete SQL-Instanz mit 256 GB RAM und 16 Kernen
- „Postgres1“: 1 PostgreSQL-Server mit 12 GB Arbeitsspeicher und 4 Kernen
Dimensionierungsberechnungen:
Größe von „SQL1“:
1 pod * ([16Gi RAM, 4 cores] + [250Mi RAM, 250m cores])
. Verwenden Sie16.25 Gi
RAM und 4,25 Kerne pro Pod für die Agents.Größe von „SQL2“:
1 pod * ([256Gi RAM, 16 cores] + [250Mi RAM, 250m cores])
. Verwenden Sie256.25 Gi
RAM und 16,25 Kerne pro Pod für die Agents.Gesamtgröße von SQL1 und SQL2:
(16.25 GB + 256.25 Gi) = 272.5-GB RAM
(4.25 cores + 16.25 cores) = 20.5 cores
Größe von „Postgres1“:
1 pod * ([12Gi RAM, 4 cores] + [250Mi RAM, 250m cores])
. Verwenden Sie12.25 Gi
RAM und4.25
Kerne pro Pod für die Agents.Die erforderliche Gesamtkapazität:
- Für die Datenbankinstanzen:
- 272,5 GB RAM
- 20,5 Kerne
- Für SQL:
- 12,25 GB RAM
- 4,25 Kerne
- Für den PostgreSQL-Server
- 284,75 GB RAM
- 24,75 Kerne
- Für die Datenbankinstanzen:
Die für die Datenbankinstanzen plus Datencontroller erforderliche Gesamtkapazität:
- Für die Datenbankinstanz
- 284,75 GB RAM
- 24,75 Kerne
- Für den Datencontroller
- 16 GB RAM
- 4 Kerne
- Insgesamt:
- 300,75 GB RAM
- 28,75 Kerne.
- Für die Datenbankinstanz
Ausführliche Informationen über die Speicherdimensionierung finden Sie im Artikel zur Speicherkonfiguration.
Andere Aspekte
Beachten Sie, dass die Anforderung der Datenbankinstanzgröße für Kerne oder RAM die verfügbare Kapazität der Kubernetes-Knoten im Cluster nicht überschreiten darf. Wenn beispielsweise der größte Kubernetes-Knoten im Kubernetes-Cluster 256 GB RAM und 24 Kerne umfasst, können Sie keine Datenbankinstanz mit einer Anforderung von 512 GB RAM und 48 Kernen erstellen.
Halten Sie mindestens 25 % der verfügbaren Kapazität der Kubernetes-Knoten vor. Diese Kapazität ermöglicht Kubernetes folgendes:
- Effizientes Planen der Erstellung von Pods
- Aktivieren der elastischen Skalierung
- Unterstützt rollierende Upgrades der Kubernetes-Knoten
- Erleichtert ein langfristiges Wachstum bei Bedarf
Berücksichtigen Sie bei den Dimensionierungsberechnungen die Ressourcenanforderungen der Kubernetes-Systempods und andere Workloads, die möglicherweise gemeinsam mit Azure Arc-fähigen Datendiensten in demselben Kubernetes-Cluster Kapazität nutzen.
Damit während geplanter Wartung und Notfällen Hochverfügbarkeit erhalten bleibt, berücksichtigen Sie bei der Planung, dass stets eine Situation eintreten kann, in der mindestens ein Kubernetes-Knoten im Cluster nicht verfügbar ist. Kubernetes versucht, die Pods, die auf einem wegen Wartung oder aufgrund eines Fehlers außer Betrieb genommenen Knoten ausgeführt wurden, neu zu planen. Falls auf den verbleibenden Knoten keine Kapazität verfügbar ist, wird die Erstellung dieser Pods erst dann neu geplant, wenn wieder Kapazität verfügbar ist. Große Datenbankinstanzen erfordern besondere Vorsicht. Wenn beispielsweise nur ein Kubernetes-Knoten groß genug ist, um die Ressourcenanforderungen einer großen Datendankinstanz zu erfüllen, und dieser Knoten ausfällt, wird Kubernetes diesen Datenbankinstanzpod nicht für die Erstellung auf einem anderen Kubernetes-Knoten planen.
Beachten Sie die oberen Grenzwerte für die Kubernetes-Clustergröße.
Der Kubernetes-Administrator hat möglicherweise Ressourcenkontingente für Ihren Namespace bzw. Ihr Projekt eingerichtet. Beachten Sie diese Kontingente beim Planen der Datenbankinstanzgrößen.