Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Sélecteur d'instance
eksctl permet de spécifier plusieurs types d'instances pour les groupes de nœuds gérés et autogérés, mais avec plus de 270 types d' EC2 instances, les utilisateurs doivent passer du temps à déterminer quels types d'instances conviennent le mieux à leur groupe de nœuds. C'est encore plus difficile lorsque vous utilisez des instances Spot, car vous devez choisir un ensemble d'instances qui fonctionne bien avec le Cluster Autoscaler.
eksctl s'intègre désormais au sélecteur d'EC2 instance
Création de clusters et de groupes de nœuds
Pour créer un cluster avec un seul groupe de nœuds qui utilise des types d'instances correspondant aux critères de ressources du sélecteur d'instance transmis à eksctl, exécutez
eksctl create cluster --instance-selector-vcpus=2 --instance-selector-memory=4
Cela créera un cluster et un groupe de nœuds géré avec le instanceTypes
champ défini sur [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium]
(l'ensemble de types d'instances renvoyé peut changer).
Pour les groupes de nœuds non gérés, le instancesDistribution.instanceTypes
champ sera défini comme suit :
eksctl create cluster --managed=false --instance-selector-vcpus=2 --instance-selector-memory=4
Les critères du sélecteur d'instance peuvent également être spécifiés dans 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
Les options CLI du sélecteur d'instance suivantes sont prises en charge par eksctl create cluster
et eksctl create nodegroup
:
--instance-selector-vcpus
--instance-selector-memory
, --instance-selector-gpus
et instance-selector-cpu-architecture
Vous trouverez un exemple de fichier ici
Run à sec
La fonction d'exécution à sec vous permet d'inspecter et de modifier les instances correspondant au sélecteur d'instance avant de procéder à la création d'un groupe de nœuds.
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
Le résultat généré ClusterConfig peut ensuite être transmis à eksctl create cluster
:
eksctl create cluster -f generated-cluster.yaml
Le instanceSelector
champ représentant les options de la CLI sera également ajouté au ClusterConfig fichier à des fins de visibilité et de documentation. Lorsqu'il --dry-run
est omis, ce champ sera ignoré et le instanceTypes
champ sera utilisé, sinon toute modification instanceTypes
sera annulée par eksctl.
Lorsqu'un ClusterConfig fichier est transmis--dry-run
, eksctl produit un ClusterConfig fichier contenant le même ensemble de groupes de nœuds après avoir développé les critères de ressources du sélecteur d'instance de chaque groupe de nœuds.
# 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 # ...