Selector de instancias - Guía del usuario de Eksctl

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Selector de instancias

eksctl admite la especificación de varios tipos de instancias para grupos de nodos gestionados y autogestionados, pero con más de 270 tipos de EC2 instancias, los usuarios tienen que dedicar tiempo a determinar qué tipos de instancias serían adecuados para su grupo de nodos. Es aún más difícil cuando se utilizan instancias puntuales, ya que hay que elegir un conjunto de instancias que funcione bien junto con el escalador automático de clústeres.

eksctl ahora se integra con el selector de EC2 instancias, lo que soluciona este problema al generar una lista de tipos de instancias basada en criterios de recursos: vCPUs, memoria, # de y arquitectura de GPUs CPU. Cuando se cumplen los criterios del selector de instancias, eksctl crea un grupo de nodos con los tipos de instancias configurados según los tipos de instancias que coincidan con los criterios proporcionados.

Crea grupos de clústeres y nodos

Para crear un clúster con un único grupo de nodos que utilice tipos de instancias que coincidan con los criterios de recursos del selector de instancias pasados a eksctl, ejecuta

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

Esto creará un clúster y un grupo de nodos gestionado con el instanceTypes campo establecido en [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium] (el conjunto de tipos de instancias devuelto puede cambiar).

Para los grupos de nodos no administrados, el campo se configurará de la siguiente manerainstancesDistribution.instanceTypes:

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

Los criterios del selector de instancias también se pueden especificar en: 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

Las siguientes opciones de CLI del selector de instancias son compatibles con eksctl create cluster yeksctl create nodegroup:

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

Puedes encontrar un archivo de ejemplo aquí.

Funcionamiento en seco

La función de ejecución en seco te permite inspeccionar y cambiar las instancias que coinciden con el selector de instancias antes de proceder a crear un grupo de nodos.

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

Luego, lo generado se ClusterConfig puede pasar a: eksctl create cluster

eksctl create cluster -f generated-cluster.yaml

El instanceSelector campo que representa las opciones de CLI también se agregará al ClusterConfig archivo para fines de visibilidad y documentación. Si --dry-run se omite, este campo se ignorará y se utilizará; de lo contrario, eksctl instanceTypes anulará cualquier cambio realizado en él. instanceTypes

Cuando se pasa un ClusterConfig archivo--dry-run, eksctl generará un ClusterConfig archivo que contenga el mismo conjunto de grupos de nodos tras ampliar los criterios de recursos del selector de instancias de cada grupo de nodos.

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