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. Bei über 270 EC2 Instanztypen müssen Benutzer jedoch Zeit damit verbringen, herauszufinden, welche Instanztypen für ihre Knotengruppe am besten geeignet sind. Bei der Verwendung von Spot-Instances ist es noch schwieriger, 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 Instance-Typen auf der Grundlage von Ressourcenkriterien generiert wird: vCPUs, memory, # of und CPU-Architektur. GPUs Wenn die Kriterien für die Instanzauswahl erfüllt sind, erstellt eksctl eine Knotengruppe, in der die Instanztypen auf die Instanztypen gesetzt sind, die den angegebenen Kriterien entsprechen.

Erstellen Sie Cluster und Knotengruppen

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

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] (der Satz der zurückgegebenen Instanztypen kann sich ändern).

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

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 eksctl create nodegroup unterstützt:

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

Eine Beispieldatei finden Sie hier.

Probelauf

Mit der Dry-Run-Funktion können Sie die Instanzen überprüfen und ändern, denen die Instanzauswahl entspricht, bevor Sie mit der Erstellung einer Knotengruppe 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 generierten Daten ClusterConfig können dann übergeben 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 mit ü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 # ...