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