Unterstützung für die Verbesserung dieser Seite beitragen
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.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.
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.
Erstellen eines Knotenpools für EKS Auto Mode
Amazon-EKS-Knoten-Pools bieten eine flexible Möglichkeit zur Verwaltung von Rechenressourcen in Ihrem Kubernetes-Cluster. Dieses Thema veranschaulicht, wie Sie mit Karpenter, einem Tool zur Bereitstellung von Knoten, das die Cluster-Skalierung und Ressourcenauslastung optimiert, Knoten-Pools erstellen und konfigurieren können. Mit der NodePool Ressource von Karpenter können Sie spezifische Anforderungen für Ihre Rechenressourcen definieren, einschließlich Instanztypen, Verfügbarkeitszonen, Architekturen und Kapazitätstypen.
Die integrierten system- und general-purpose- Knoten-Pools können nicht geändert werden. Sie können sie lediglich aktivieren oder deaktivieren. Weitere Informationen finden Sie unter Aktivieren oder deaktivieren Built-in NodePools.
Die NodePool Spezifikation ermöglicht eine detaillierte Steuerung der Rechenressourcen Ihres EKS-Clusters anhand verschiedener unterstützter Bezeichnungen und Anforderungen. Dazu gehören Optionen zur Angabe von EC2-Instance-Kategorien, CPU-Konfigurationen, Verfügbarkeitszonen, Architekturen (ARM64/AMD64) und Kapazitätstypen (Spot oder On-Demand). Sie können auch Ressourcenlimits für die CPU- und Speichernutzung festlegen, um sicherzustellen, dass Ihr Cluster innerhalb der erforderlichen Betriebsgrenzen bleibt.
EKS Auto Mode nutzt bekannte Kubernetes-Labels, um konsistente und standardisierte Methoden zur Identifizierung von Knotenmerkmalen bereitzustellen. Diese Labels, wie beispielsweise topology.kubernetes.io/zone für Availability Zones und kubernetes.io/arch für die CPU-Architektur, entsprechen den gängigen Kubernetes-Konventionen. Darüber hinaus erweitern EKS-specific Labels (mit Präfixeks.amazonaws.com/) diese Funktionalität um AWS-spezifische Attribute wie Instance-Typen, CPU-Hersteller, GPU-Funktionen und Netzwerkspezifikationen. Dieses standardisierte Kennzeichnungssystem ermöglicht eine nahtlose Integration in bestehende Kubernetes-Tools und bietet gleichzeitig eine tiefgreifende Infrastrukturintegration. AWS
Erstellen Sie eine NodePool
Folgen Sie diesen Schritten, um einen NodePool für Ihren Amazon EKS-Cluster zu erstellen:
-
Erstellen Sie eine YAML-Datei
nodepool.yamlmit dem Namen Ihrer erforderlichen NodePool Konfiguration. Sie können die folgende Beispielkonfiguration verwenden. -
Wenden Sie das NodePool auf Ihren Cluster an:
kubectl apply -f nodepool.yaml -
Stellen Sie sicher, dass das erfolgreich erstellt NodePool wurde:
kubectl get nodepools -
(Optional) Überwachen Sie den NodePool Status:
kubectl describe nodepool default
Stellen Sie sicher, dass Ihre NodePool Referenzen gültig sind NodeClass , die in Ihrem Cluster vorhanden sind. Das NodeClass definiert AWS-spezifische Konfigurationen für Ihre Rechenressourcen. Weitere Informationen finden Sie unter Knotenklasse für Amazon EKS erstellen.
Beispiel NodePool
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: my-node-pool spec: template: metadata: labels: billing-team: my-team spec: nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default requirements: - key: "eks.amazonaws.com/instance-category" operator: In values: ["c", "m", "r"] - key: "eks.amazonaws.com/instance-cpu" operator: In values: ["4", "8", "16", "32"] - key: "topology.kubernetes.io/zone" operator: In values: ["us-west-2a", "us-west-2b"] - key: "kubernetes.io/arch" operator: In values: ["arm64", "amd64"] disruption: consolidationPolicy: Balanced consolidateAfter: 30s limits: cpu: "1000" memory: 1000Gi
Unterstützte Labels für EKS Auto Mode
EKS Auto Mode unterstützt die folgenden bekannten Labels.
Anmerkung
EKS Auto Mode verwendet andere Bezeichnungen als Karpenter. Bezeichnungen, die sich auf von EC2 verwaltete Instances beziehen, beginnen mit eks.amazonaws.com.
| Label (Bezeichnung) | Beispiel | Description |
|---|---|---|
|
topology.kubernetes. io/zone |
us-east-2a |
AWS Region |
|
node.kubernetes. io/instance-Typ |
g4dn.8xgroß |
AWS Instanztyp |
|
Kubernetes. io/arch |
amd64 |
Architekturen werden durch GOARCH-Werte |
|
Karpenter. sh/capacity-Typ |
spot |
Zu den Kapazitätstypen gehören |
|
eks.amazonaws. com/instance-Hypervisor |
nitro |
Instance-Typen, die einen bestimmten Hypervisor verwenden |
|
eks.amazonaws. com/compute-Typ |
auto |
Identifiziert von EKS Auto Mode verwaltete Knoten |
|
eks.amazonaws. com/instance-Verschlüsselung während der Übertragung unterstützt |
true |
Instance-Typen, welche die Verschlüsselung während der Übertragung unterstützen (oder nicht) |
|
eks.amazonaws. com/instance-Kategorie |
g |
Instance-Typen derselben Kategorie, in der Regel die Zeichenfolge vor der Generierungsnummer |
|
eks.amazonaws. com/instance-Generation |
4 |
Instace-Typ-Generierungsnummer innerhalb einer Instance-Kategorie |
|
eks.amazonaws. com/instance-Familie |
g4dn |
Instance-Typen mit ähnlichen Eigenschaften, aber unterschiedlichen Ressourcenmengen |
|
eks.amazonaws. com/instance-Größe |
8xlarge |
Instance-Typen mit ähnlichen Ressourcenmengen, jedoch unterschiedlichen Eigenschaften |
|
eks.amazonaws. com/instance-CPU |
32 |
Anzahl der CPUs auf der Instance |
|
eks.amazonaws. com/instance-CPU-Hersteller |
|
Name des CPU-Herstellers |
|
eks.amazonaws. com/instance-Speicher |
131072 |
Anzahl der Mebibyte Speicher auf der Instance |
|
eks.amazonaws. com/instance-ebs-Bandbreite |
9500 |
Anzahl der verfügbaren maximalen Megabits auf der Instance |
|
eks.amazonaws. com/instance-Netzwerk-Bandbreite |
131072 |
Anzahl der verfügbaren Basis-Megabits auf der Instance |
|
eks.amazonaws. com/instance-GPU-Name |
t4 |
Name der GPU auf der Instance, sofern verfügbar |
|
eks.amazonaws. com/instance-GPU-Hersteller |
nvidia |
Name des GPU-Herstellers |
|
eks.amazonaws. com/instance-gpu-Anzahl |
1 |
Anzahl der GPUs auf der Instance |
|
eks.amazonaws. com/instance-gpu-Speicher |
16384 |
Anzahl der Mebibyte Speicher auf der GPU |
|
eks.amazonaws. com/instance-lokales-nvme |
900 |
Anzahl der Gibibyte lokalen NVMe-Speichers auf der Instance |
|
eks.amazonaws. com/capacity-Reservierung-unterbrechbar |
true |
Ob die Kapazitätsreservierung unterbrechbar ist. Nur auf Knoten mit |
Anmerkung
EKS Auto Mode unterstützt nur bestimmte Instances und hat Mindestgrößenanforderungen. Weitere Informationen finden Sie unter Unterstützte Instance-Referenz für EKS Auto Mode.
Von EKS Auto Mode nicht unterstützte Labels
EKS Auto Mode unterstützt die folgenden Labels nicht.
-
EKS Auto Mode unterstützt Linux nicht
-
node.kubernetes.io/windows-build -
kubernetes.io/os
-
Integrierte Knoten-Pools deaktivieren
Wenn Sie benutzerdefinierte Knoten-Pools erstellen, können Sie die integrierten Knoten-Pools deaktivieren. Weitere Informationen finden Sie unter Aktivieren oder deaktivieren Built-in NodePools.
Cluster ohne integrierte Knoten-Pools
Sie können einen Cluster ohne integrierte Knoten-Pools erstellen. Dies ist nützlich, wenn Ihr Unternehmen benutzerdefinierte Knoten-Pools erstellt hat.
Anmerkung
Wenn Sie einen Cluster ohne integrierte Knotenpools erstellen, default NodeClass wird der nicht automatisch bereitgestellt. Sie müssen einen benutzerdefinierten NodeClass erstellen. Weitere Informationen finden Sie unter Knotenklasse für Amazon EKS erstellen.
Übersicht:
-
Erstellen Sie einen EKS-Cluster, bei dem
nodePoolssowohl als auchnodeRoleArnWerte leer sind.-
Beispiel-eksctl
autoModeConfig:autoModeConfig: enabled: true nodePools: [] # Do not set a nodeRoleARNWeitere Informationen finden Sie unter Erstellung eines EKS-Auto-Mode-Clusters mit der eksctl-CLI.
-
-
Benutzerdefinierte Knotenklasse mit einer Knotenrollen-ARN erstellen
-
Weitere Informationen finden Sie unter Knotenklasse für Amazon EKS erstellen.
-
-
Zugriffseintrag für die benutzerdefinierte Knotenklasse erstellen
-
Weitere Informationen finden Sie unter Knotenklassen-Zugriffseintrag erstellen.
-
-
Erstellen Sie einen benutzerdefinierten Knoten-Pool, wie oben beschrieben.
Unterbrechung
Sie können den EKS-Automatikmodus so konfigurieren, dass Nodes auf verschiedene NodePool Weise unterbrochen werden. Sie können spec.disruption.consolidationPolicy, spec.disruption.consolidateAfter oder spec.template.spec.expireAfter verwenden. Sie können die Unterbrechung des EKS-Automatikmodus auch durch die Ratenbegrenzung begrenzen. NodePool spec.disruption.budgets Außerdem können Sie die Zeitfenster und die Anzahl der gleichzeitig unterbrochenen Knoten steuern. Anweisungen zur Konfiguration dieses Verhaltens finden Sie unter Unterbrechung
Das consolidationPolicy Feld akzeptiert drei Werte:
-
WhenEmpty— Konsolidiert nur leere Knoten, sodass laufende Workloads nie unterbrochen werden. -
WhenEmptyOrUnderutilized— Aggressive Konsolidierung aus Kostengründen, wobei die Workloads unterbrochen werden, wenn die Pods eines Knotens günstiger neu gepackt werden können. -
Balanced— Bewertet jede Konsolidierungsmaßnahme, indem die Kosten für Störungen gegen die Kosteneinsparungen abgewogen werden. Überspringt Aktionen, bei denen die Störung die Einsparungen überwiegt.
Einzelheiten zu den einzelnen Werten finden Sie in der Karpenter-Dokumentation
Sie können Unterbrechungen für Knoten-Pools wie folgt konfigurieren:
-
Identifizieren Sie, wann Instances nicht ausreichend ausgelastet sind, und konsolidieren Sie Workloads.
-
Erstellen Sie ein Budget für Knoten-Pool-Unterbrechung, um die Beendigung von Knoten aufgrund von Abweichungen, Leerständen und Konsolidierungen zu begrenzen.
Standardmäßig macht EKS Auto Mode Folgendes:
-
Konsolidiert nicht ausgelastete Instances.
-
Beendet Instances nach 336 Stunden.
-
Legt ein einzelnes Budget für Unterbrechung von 10 % der Knoten fest.
-
Ermöglicht den Austausch von Knoten aufgrund von Abweichungen, wenn eine neue AMI im Automatikmodus veröffentlicht wird. Das kommt etwa einmal pro Woche vor.
Kündigungsfrist
Wenn a in einem EKS-Automatikmodus nicht explizit definiert terminationGracePeriod ist NodePool, wendet das System automatisch eine standardmäßige 24-stündige Kündigungsfrist auf den zugehörigen Modus an. NodeClaim EKS-Automodus-Kunden sehen in ihren benutzerdefinierten NodePool Konfigurationen zwar keine terminationGracePeriod Standardeinstellung, sie beachten jedoch diesen Standardwert auf der. NodeClaim Die Funktionalität bleibt konsistent, unabhängig davon, ob die Kulanzfrist explizit auf der NodePool oder auf der Standardeinstellung festgelegt ist NodeClaim, sodass ein vorhersehbares Verhalten bei der Knotenbeendigung im gesamten Cluster gewährleistet ist.