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 istanze EC2, gli utenti devono dedicare del tempo a capire quali tipi di istanza sarebbero adatti al loro nodegroup. È ancora più difficile quando si utilizzano le istanze Spot perché è necessario scegliere un set di istanze che funzionino bene con Cluster Autoscaler.
eksctl ora si integra con il selettore di istanze EC2
Crea cluster e nodegroup
Per creare un cluster con un singolo nodegroup che utilizza i 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 nodegroup gestito con il instanceTypes campo impostato su [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium] (il set 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 di selezione delle istanze 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 e: eksctl create cluster 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
Corsa a secco
La funzionalità dry-run consente di ispezionare e modificare le istanze corrispondenti al selettore di istanze prima di procedere alla creazione di un nodegroup.
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
Il generato può quindi essere passato a: ClusterConfig eksctl create cluster
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 instanceTypes verrebbe sovrascritta da eksctl.
Quando un ClusterConfig file viene passato con--dry-run, eksctl produrrà un ClusterConfig file contenente lo stesso set di nodegroup dopo aver espanso i criteri delle risorse del selettore di istanze di ciascun nodegroup.
# 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 # ...