Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Auto Scaling
Auto Scaling aktivieren
eksctl create cluster --asg-access
Dieses Flag setzt auch k8s.io/cluster-autoscaler/<clusterName>
Tags k8s.io/cluster-autoscaler/enabled
und markiert sie, sodass die Erkennung von Knotengruppen funktionieren sollte.
Sobald der Cluster läuft, müssen Sie Cluster Autoscaler
Sie sollten Ihren Definitionen für verwaltete oder nicht verwaltete Knotengruppen außerdem Folgendes hinzufügen, um die Tags hinzuzufügen, die für den Cluster-Autoscaler zur Skalierung der Knotengruppe erforderlich sind:
nodeGroups: - name: ng1-public iam: withAddonPolicies: autoScaler: true
Hochskalierung von 0
Wenn Sie in der Lage sein möchten, Ihre Knotengruppe von 0 nach oben zu skalieren und Sie haben Labels and/or Taints für Ihre Knotengruppen definiert, müssen Sie diese als Tags in Ihren Auto Scaling Groups () propagieren. ASGs
Eine Möglichkeit, dies zu tun, besteht darin, die ASG-Tags im tags
Feld Ihrer Knotengruppendefinitionen festzulegen. Zum Beispiel bei einer Knotengruppe mit den folgenden Labels und Taints:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: key: feaster value: "true" effect: NoSchedule
Sie müssten die folgenden ASG-Tags hinzufügen:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" tags: k8s.io/cluster-autoscaler/node-template/label/my-cool-label: pizza k8s.io/cluster-autoscaler/node-template/taint/feaster: "true:NoSchedule"
Sowohl für verwaltete als auch für nicht verwaltete Knotengruppen kann dies automatisch geschehen, indem propagateASGTags
auf gesetzt wirdtrue
, wodurch die Labels und Taints als Tags zur Auto Scaling Scaling-Gruppe hinzugefügt werden:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" propagateASGTags: true
Zonenorientiertes Auto Scaling
Wenn Ihre Workloads zonenspezifisch sind, müssen Sie für jede Zone separate Knotengruppen erstellen. Das liegt daran, dass cluster-autoscaler
davon ausgegangen wird, dass alle Knoten in einer Gruppe exakt gleichwertig sind. Wenn also beispielsweise ein Scale-up-Ereignis durch einen Pod ausgelöst wird, der ein zonenspezifisches PVC benötigt (z. B. ein EBS-Volume), wird der neue Knoten möglicherweise in der falschen AZ geplant und der Pod kann nicht gestartet werden.
Sie benötigen keine separate Knotengruppe für jede AZ, wenn Ihre Umgebung die folgenden Kriterien erfüllt:
-
Keine zonenspezifischen Speicheranforderungen.
-
Keine PodAffinity mit einer anderen Topologie als dem Host erforderlich.
-
Keine NodeAffinity auf dem Zonenlabel erforderlich.
-
Kein NodeSelector auf einer Zonenbeschriftung.
(Lesen Sie hier und hier mehr.
Wenn Sie alle oben genannten Anforderungen (und möglicherweise weitere) erfüllen, sollten Sie mit einer einzelnen Knotengruppe, die sich über mehrere erstreckt, auf Nummer sicher gehen. AZs Andernfalls sollten Sie separate Single-AZ-Knotengruppen erstellen:
VORHER:
nodeGroups: - name: ng1-public instanceType: m5.xlarge # availabilityZones: ["eu-west-2a", "eu-west-2b"]
NACH:
nodeGroups: - name: ng1-public-2a instanceType: m5.xlarge availabilityZones: ["eu-west-2a"] - name: ng1-public-2b instanceType: m5.xlarge availabilityZones: ["eu-west-2b"]