View a markdown version of this page

Instanzenauswahl - Eksctl-Benutzerhandbuch

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.

Instanzenauswahl

eksctl unterstützt die Angabe mehrerer Instanztypen für verwaltete und selbstverwaltete Knotengruppen, aber bei über 270 EC2-Instance-Typen müssen Benutzer Zeit damit verbringen, herauszufinden, welche Instance-Typen für ihre Knotengruppe gut geeignet wären. Noch schwieriger ist es, Spot-Instances zu verwenden, da Sie eine Reihe von Instances auswählen müssen, die gut mit dem Cluster Autoscaler zusammenarbeiten.

eksctl ist jetzt in den EC2-Instance-Selektor integriert, der dieses Problem behebt, indem eine Liste von Instanztypen generiert wird, die auf Ressourcenkriterien basieren: vCPUs, Arbeitsspeicher, Anzahl der GPUs und CPU-Architektur. Wenn die Instanzauswahlkriterien erfüllt sind, erstellt eksctl eine Knotengruppe, in der die Instanztypen auf die Instanztypen festgelegt sind, die den angegebenen Kriterien entsprechen.

Erstellen Sie Cluster und Knotengruppen

Um einen Cluster mit einer einzelnen Knotengruppe zu erstellen, der Instanztypen verwendet, die den an eksctl übergebenen Ressourcenkriterien für die Instanzauswahl entsprechen, führen Sie den Befehl aus

eksctl create cluster --instance-selector-vcpus=2 --instance-selector-memory=4

Dadurch werden ein Cluster und eine verwaltete Knotengruppe erstellt, wobei das instanceTypes Feld auf gesetzt ist [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium] (die Menge der zurückgegebenen Instanztypen kann sich ändern).

Für nicht verwaltete Knotengruppen wird das instancesDistribution.instanceTypes Feld wie folgt festgelegt:

eksctl create cluster --managed=false --instance-selector-vcpus=2 --instance-selector-memory=4

Die Kriterien für die Instanzauswahl können auch angegeben werden in: ClusterConfig

# instance-selector-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: "4" # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB # cpuArchitecture: x86_64 # default value
eksctl create cluster -f instance-selector-cluster.yaml

Die folgenden CLI-Optionen für die Instanzauswahl werden von eksctl create cluster und unterstützt: eksctl create nodegroup

--instance-selector-vcpus, --instance-selector-memory und --instance-selector-gpus instance-selector-cpu-architecture

Eine Beispieldatei finden Sie hier.

Probelauf

Mit der Trockenlauf Dryrun-Funktion können Sie die vom Instanzselektor übereinstimmenden Instanzen überprüfen und ändern, bevor Sie mit der Erstellung einer Nodegroup fortfahren.

eksctl create cluster --name development --instance-selector-vcpus=2 --instance-selector-memory=4 --dry-run apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig # ... managedNodeGroups: - amiFamily: AmazonLinux2 instanceSelector: memory: "4" vCPUs: 2 instanceTypes: - c5.large - c5a.large - c5ad.large - c5d.large - t2.medium - t3.medium - t3a.medium ... # other config

Die generierte Datei ClusterConfig kann dann weitergegeben werden an: eksctl create cluster

eksctl create cluster -f generated-cluster.yaml

Das instanceSelector Feld, das die CLI-Optionen darstellt, wird der ClusterConfig Datei aus Gründen der Sichtbarkeit und Dokumentation ebenfalls hinzugefügt. Wenn --dry-run es weggelassen wird, wird dieses Feld ignoriert und das instanceTypes Feld wird verwendet, andernfalls instanceTypes würden alle Änderungen an von eksctl überschrieben.

Wenn eine ClusterConfig Datei übergeben wird, gibt eksctl eine ClusterConfig Datei aus--dry-run, die denselben Satz von Knotengruppen enthält, nachdem die Ressourcenkriterien für die Instanzauswahl jeder Knotengruppe erweitert wurden.

# instance-selector-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: 4 # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB # cpuArchitecture: x86_64 # default value
eksctl create cluster -f instance-selector-cluster.yaml --dry-run apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig # ... managedNodeGroups: - amiFamily: AmazonLinux2 # ... instanceSelector: cpuArchitecture: x86_64 memory: 2GiB vCPUs: 2 instanceTypes: - t3.small - t3a.small nodeGroups: - amiFamily: AmazonLinux2 # ... instanceSelector: memory: "4" vCPUs: 2 instanceType: mixed instancesDistribution: capacityRebalance: false instanceTypes: - c5.large - c5a.large - c5ad.large - c5d.large - t2.medium - t3.medium - t3a.medium # ...