Selettore di istanze - Guida per l'utente di Eksctl

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Selettore di istanze

eksctl supporta la specificazione di più tipi di istanze per gruppi di nodi gestiti e autogestiti, ma con oltre 270 tipi di EC2 istanze, gli utenti devono dedicare del tempo a capire quali tipi di istanza sarebbero più adatti al loro gruppo di nodi. È ancora più difficile quando si utilizzano le istanze Spot perché è necessario scegliere un set di istanze che funzioni bene insieme a Cluster Autoscaler.

eksctl ora si integra con il selettore di EC2 istanze, che risolve questo problema generando un elenco di tipi di istanze basato su criteri di risorse: vCPUs, memory, # of e architettura CPU. GPUs Quando vengono passati i criteri del selettore di istanza, eksctl crea un nodegroup con i tipi di istanza impostati sui tipi di istanza che corrispondono ai criteri forniti.

Crea cluster e gruppi di nodi

Per creare un cluster con un singolo gruppo di nodi che utilizzi tipi di istanza corrispondenti ai criteri di risorsa del selettore di istanze passati a eksctl, esegui

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

Questo creerà un cluster e un gruppo di nodi gestito con il instanceTypes campo impostato su [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium] (l'insieme di tipi di istanza restituiti potrebbe cambiare).

Per i gruppi di nodi non gestiti, il instancesDistribution.instanceTypes campo verrà impostato:

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

I criteri del selettore di istanza possono essere specificati anche 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

Le seguenti opzioni CLI del selettore di istanze sono supportate da eksctl create cluster e: eksctl create nodegroup

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

Un file di esempio può essere trovato qui.

Dry Run

La funzione dry-run consente di ispezionare e modificare le istanze corrispondenti al selettore di istanze prima di procedere alla creazione di un gruppo di nodi.

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

ClusterConfig Il generato può eksctl create cluster quindi essere passato a:

eksctl create cluster -f generated-cluster.yaml

Il instanceSelector campo che rappresenta le opzioni CLI verrà inoltre aggiunto al ClusterConfig file per scopi di visibilità e documentazione. Quando --dry-run viene omesso, questo campo verrà ignorato e il instanceTypes campo verrà utilizzato, altrimenti qualsiasi modifica verrà sovrascritta da instanceTypes eksctl.

Quando viene passato un ClusterConfig file--dry-run, eksctl produrrà un ClusterConfig file contenente lo stesso set di gruppi di nodi dopo aver ampliato i criteri di risorsa del selettore di istanze di ciascun gruppo di nodi.

# 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 # ...