|
|
Tool-Namen wie Prometheus, Alertmanager, Grafana werden hier nur als Beispiele verwendet. Es kann jeder äquivalente Observability-Stack verwendet werden, ob verwaltet oder selbst gehostet. Dimensionierungen setzen einen repräsentativen Stack für die Kapazitätsplanung voraus. Passen Sie Werte basierend auf der ausgewählten Plattform an, z.B. Azure Monitor oder Datadog.
|
|
Workload
|
Typ
|
Pool
|
|---|---|---|
|
cb-ai-service
|
Anwendung (Python)
|
Benutzer-Pool
|
|
Observability‑ und Monitoring-Tools
|
Observability (Traces und Telemetrie-Pipeline)
Monitoring (Metrikerfassung und Warnungen)
|
Benutzer-Pool
|
|
OpenTelemetry Collector
|
Benutzer-Pool
|
|
|
CoreDNS, kube-proxy, metrics-server
|
Kubernetes-Systemkomponenten
|
System-Pool
|
|
Azure Policy, OMS Agent, Defender, CSI-Treiber
|
Azure‑Sicherheits‑ und Compliance‑Agents
|
System-Pool
|
|
Pool
|
Zweck
|
VM-Familie
|
Automatische Skalierung
|
|---|---|---|---|
|
System-Pool
|
Kubernetes-interne Komponenten und Azure-Agents
|
Dasv5-Serie (AMD, kostenoptimiert)
|
Ja (2–3 Knoten)
|
|
Benutzer-Pool
|
Anwendungs- und Observability-Workloads
|
Ja (3–12 Knoten)
|
|
Profil
|
Gleichzeitige Benutzer
|
|---|---|
|
Klein (S)
|
Bis zu 100
|
|
Mittel (M)
|
100–300
|
|
Groß (L)
|
300–700
|
|
Parameter
|
Klein
|
Mittel
|
Groß
|
|---|---|---|---|
|
Benutzer-Pool-VM
|
Standard_D8as_v5 (8 vCPU / 32 GiB)
|
Standard_D8as_v5 (8 vCPU / 32 GiB)
|
Standard_D8as_v5 (8 vCPU / 32 GiB)
|
|
Min./Max. Knoten im Benutzer-Pool
|
3 / 6
|
3 / 10
|
3 / 12
|
|
System-Pool-VM
|
Standard_D2as_v5 (2 vCPU / 8 GiB)
|
Standard_D2as_v5 (2 vCPU / 8 GiB)
|
Standard_D2as_v5 (2 vCPU / 8 GiB)
|
|
Min./Max. Knoten für System-Pool
|
2 / 3
|
2 / 3
|
2 / 3
|
|
Gesamtzahl der App-Pod-Replikate
|
2-10
|
2-10
|
2-10
|
|
Prometheus‑/(oder vergleichbares Tool)‑Replikate
|
1
|
2 (HA)
|
2 (HA)
|
|
Grafana‑/(oder vergleichbares Tool)‑Replikate
|
1
|
1
|
2 (HA)
|
|
OpenTelemetry Collector‑Replikate
|
1
|
2
|
3
|
|
Klein
|
Mittel
|
Groß
|
|
|---|---|---|---|
|
CPU-Anforderung
|
500m (0,5 vCPU)
|
1000m (1 vCPU)
|
1500m (1,5 vCPU)
|
|
Speicheranforderung
|
1 GiB
|
1,5 GiB
|
3 GiB
|
|
HPA-Ziel-CPU
|
70 %
|
70 %
|
70 %
|
|
HPA-Min./Max.-Replikate
|
2 / 10
|
2 / 10
|
2 / 10
|
|
|
Prometheus wird hier als Beispiel für eine Metriklösung herangezogen. Es kann jede äquivalente Metrik- und Warnungslösung verwendet werden (verwaltet oder selbst gehostet). Dimensionieren Sie CPU, Arbeitsspeicher und PVC basierend auf der Aufbewahrung und der Serienanzahl.
|
|
Klein
|
Mittel
|
Groß
|
|
|---|---|---|---|
|
Replikate
|
1
|
2 (HA)
|
2 (HA)
|
|
CPU-Anforderung
|
500m (0,5 vCPU)
|
1000m (1 vCPU)
|
2000m (2 vCPU)
|
|
Speicheranforderung
|
1 GiB
|
2 GiB
|
4 GiB
|
|
Gleichzeitige Benutzer
|
Aktive Serien
|
Aufnahmerate
|
7 Tage PVC
|
15 Tage PVC
|
30 Tage PVC
|
|---|---|---|---|---|---|
|
~100 (Klein)
|
20–50k
|
~500 Samples/Sek.
|
~20 GiB
|
~40 GiB
|
~80 GiB
|
|
~300 (Mittel)
|
50–100k
|
~1.500 Samples/Sek.
|
~50 GiB
|
~100 GiB
|
~200 GiB
|
|
~700 (Groß)
|
100–200k
|
~3.000 Samples/Sek.
|
~100 GiB
|
~200 GiB
|
~400 GiB
|
|
Klein
|
Mittel
|
Groß
|
|
|---|---|---|---|
|
Replikate
|
1
|
1
|
2 (HA)
|
|
CPU-Anforderung
|
100m (0,1 vCPU)
|
250m (0,25 vCPU)
|
500m (0,5 vCPU)
|
|
Speicheranforderung
|
128 Mi
|
256 Mi
|
512 Mi
|
|
PVC
|
5 GiB
|
10 GiB
|
10 GiB
|
|
Klein
|
Mittel
|
Groß
|
|
|---|---|---|---|
|
Modus
|
Bereitstellung (Gateway)
|
Bereitstellung (Gateway)
|
Bereitstellung (Gateway)
|
|
Replikate
|
1
|
2
|
3
|
|
CPU-Anforderung
|
250m (0,25 vCPU)
|
500m (0,5 vCPU)
|
1000m (1 vCPU)
|
|
Speicheranforderung
|
512 Mi
|
1 GiB
|
2 GiB
|
|
PVC
|
5 GiB
|
5 GiB
|
10 GiB
|
|
Komponente
|
CPU-Anforderung
|
Speicheranforderung
|
Typ
|
|---|---|---|---|
|
Node Exporter
|
50–100m pro Knoten
|
30–64 Mi pro Knoten
|
DaemonSet (wird auf jedem Benutzer-Pool-Knoten ausgeführt)
|
|
kube-state-metrics
|
50–200m
|
64–256 Mi
|
Einzelne Bereitstellung
|
|
Workload
|
Min. Pods
|
Max. Pods
|
CPU-Anforderung (Min.)
|
CPU-Anforderung (Max.)
|
Speicheranforderung (Min.)
|
Speicheranforderung (Max.)
|
|---|---|---|---|---|---|---|
|
cb-ai-service
|
2
|
10
|
1000m (1 vCPU)
|
5000m (5 vCPU)
|
2 GiB
|
10 GiB
|
|
Prometheus
|
1
|
1
|
500m
|
500m
|
1 GiB
|
1 GiB
|
|
Alertmanager
|
1
|
1
|
50m
|
50m
|
64 MiB
|
64 MiB
|
|
Node Exporter (DaemonSet)
|
3
|
5
|
150m
|
250m
|
90 MiB
|
150 MiB
|
|
kube-state-metrics
|
1
|
1
|
50m
|
50m
|
64 MiB
|
64 MiB
|
|
Grafana
|
1
|
1
|
100m
|
100m
|
128 MiB
|
128 MiB
|
|
OpenTelemetry Collector
|
2
|
2
|
500m
|
500m
|
1 GiB
|
1 GiB
|
|
Zwischensumme
|
11
|
21
|
2.350m (~2,4 vCPU)
|
6.450m (~6,5 vCPU)
|
~4,3 GiB
|
~12,4 GiB
|
|
+ 25 % Reservekapazität
|
~3.000m (~3 vCPU)
|
~8.060m (~8,1 vCPU)
|
~5,4 GiB
|
~15,5 GiB
|
|
Workload
|
Min. Pods
|
Max. Pods
|
CPU-Anforderung (Min.)
|
CPU-Anforderung (Max.)
|
Speicheranforderung (Min.)
|
Speicheranforderung (Max.)
|
|---|---|---|---|---|---|---|
|
cb-ai-service
|
2
|
10
|
1000m (1 vCPU)
|
5000m (5 vCPU)
|
2 GiB
|
10 GiB
|
|
Prometheus
|
2 (HA)
|
2 (HA)
|
2000m (2 vCPU)
|
2000m (2 vCPU)
|
4 GiB
|
4 GiB
|
|
Alertmanager
|
2 (HA)
|
2 (HA)
|
100m
|
100m
|
128 MiB
|
128 MiB
|
|
Node Exporter (DaemonSet)
|
4
|
8
|
400m
|
800m
|
240 MiB
|
480 MiB
|
|
kube-state-metrics
|
1
|
1
|
100m
|
100m
|
128 MiB
|
128 MiB
|
|
Grafana
|
1
|
1
|
200m
|
200m
|
256 MiB
|
256 MiB
|
|
OpenTelemetry Collector
|
2
|
2
|
1000m (1 vCPU)
|
1000m (1 vCPU)
|
2 GiB
|
2 GiB
|
|
Zwischensumme
|
14
|
26
|
4.800m (~4,8 vCPU)
|
9.200m (~9,2 vCPU)
|
~8,7 GiB
|
~17 GiB
|
|
+ 25 % Reservekapazität
|
~6.000m (~6 vCPU)
|
~11.500m (~11,5 vCPU)
|
~10,9 GiB
|
~21,2 GiB
|
|
Workload
|
Min. Pods
|
Max. Pods
|
CPU-Anforderung (Min.)
|
CPU-Anforderung (Max.)
|
Speicheranforderung (Min.)
|
Speicheranforderung (Max.)
|
|---|---|---|---|---|---|---|
|
cb-ai-service
|
2
|
10
|
1000m (1 vCPU)
|
5000m (5 vCPU)
|
2 GiB
|
10 GiB
|
|
Prometheus
|
2 (HA)
|
2 (HA)
|
4000m (4 vCPU)
|
4000m (4 vCPU)
|
8 GiB
|
8 GiB
|
|
Alertmanager
|
2 (HA)
|
2 (HA)
|
200m
|
200m
|
256 MiB
|
256 MiB
|
|
Node Exporter (DaemonSet)
|
6
|
12
|
600m
|
1200m
|
360 MiB
|
720 MiB
|
|
kube-state-metrics
|
1
|
1
|
200m
|
200m
|
256 MiB
|
256 MiB
|
|
Grafana
|
2
|
2
|
500m
|
500m
|
512 MiB
|
512 MiB
|
|
OpenTelemetry Collector
|
3
|
3
|
3000m (3 vCPU)
|
3000m (3 vCPU)
|
6 GiB
|
6 GiB
|
|
Zwischensumme
|
18
|
32
|
9.500m (~9,5 vCPU)
|
14.100m (~14,1 vCPU)
|
~17,3 GiB
|
~25,7 GiB
|
|
+ 25 % Reservekapazität
|
~11.875m (~11,9 vCPU)
|
~17.625m (~17,6 vCPU)
|
~21,7 GiB
|
~32,1 GiB
|
|
Dimensionierungsentscheidung
|
Terraform-Variable
|
Datei
|
|---|---|---|
|
VM-Größe des Benutzer-Pools
|
aks_user_pool_vm_size
|
infra.tfvars
|
|
Minimale/maximale Knoten für Benutzer-Pool
|
aks_user_pool_min_count / aks_user_pool_max_count
|
infra.tfvars
|
|
VM-Größe des System-Pools
|
aks_system_pool_vm_size
|
infra.tfvars
|
|
Minimale/maximale Knoten für System-Pool
|
aks_system_pool_min_count / aks_system_pool_max_count
|
infra.tfvars
|
|
Kapazität des OpenAI-Modells (TPM)
|
openai_gpt5_mini_capacity / openai_gpt5_nano_capacity
|
infra.tfvars
|
|
OpenAI-Bereitstellungs-SKU
|
openai_gpt5_mini_sku_name / openai_gpt5_nano_sku_name
|
infra.tfvars
|
|
Maximale Pods pro Knoten
|
Hartcodiert auf 50
|
modules/aks/main.tf
|
|
SKU-Typ
|
Beispiele
|
Abrechnung
|
Anwendungsfall
|
|---|---|---|---|
|
Pay-as-you-go-Dienste
|
DataZoneStandard, GlobalStandard
|
Abrechnung pro Token
|
Entwicklung, variable Workloads
|
|
PTU
|
DataZoneProvisionedManaged, GlobalProvisionedManaged, ProvisionedManaged
|
Reservierte Kapazität
|
Produktion, vorhersehbare Workloads
|
# ── Small (100 concurrent users) ─────────────────────
aks_user_pool_vm_size = "Standard_D8as_v5"
aks_user_pool_min_count = 3
aks_user_pool_max_count = 6
openai_gpt5_mini_capacity = 3000
openai_gpt5_nano_capacity = 3000
# ── Medium (300 concurrent users) ────────────────────
aks_user_pool_vm_size = "Standard_D8as_v5"
aks_user_pool_min_count = 3
aks_user_pool_max_count = 10
openai_gpt5_mini_capacity = 6000
openai_gpt5_nano_capacity = 6000
# ── Large (700 concurrent users) ─────────────────────
aks_user_pool_vm_size = "Standard_D8as_v5"
aks_user_pool_min_count = 3
aks_user_pool_max_count = 12
openai_gpt5_mini_capacity = 12000
openai_gpt5_nano_capacity = 12000
|
Thema
|
Link zur offiziellen Dokumentation
|
|---|---|
|
Azure OpenAI-Kontingente und -Grenzwerte
|
|
|
AKS-Dienstkontingente und -Grenzwerte
|
|
|
Azure-Abonnement- und Dienstgrenzwerte (Master-Liste)
|
|
|
Azure Cognitive Services-Grenzwerte
|
|
|
AKS-Knotenpool-Beschränkungen
|
|
Thema
|
Link zur offiziellen Dokumentation
|
|---|---|
|
PTU Übersicht und Dimensionierung
|
|
|
PTU-Rechner (Kapazitätsplanung)
|
|
|
Informationen zur PTU-Zuweisung
|
|
|
Erste Schritte mit PTUs
|
|
|
Überwachung der PTU-Auslastung
|