Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
¿Cómo creo varios grupos de nodos para los nodos de Amazon EKS mediante eksctl?
Quiero crear varios grupos de nodos para los nodos de Amazon Elastic Kubernetes Service (Amazon EKS) mediante eksctl.
Resolución
Puedes crear un grupo de nodos mediante eksctl con parámetros predeterminados. o con parámetros personalizados y un archivo de configuración para varios grupos de nodos.
Nota: Para instalar la versión más reciente de eksctl, consulta Installation options for Eksctl (Opciones de instalación de Eksctl).
Para confirmar que eksctl está configurado e instalado en tu máquina local, abre la terminal o línea de comandos que prefieras y ejecuta el siguiente comando:
eksctl version
A continuación, elige una de las siguientes resoluciones según el tipo de parámetros que desees utilizar.
Crear un grupo de nodos con parámetros predeterminados
-
Para crear un grupo de nodos adicional con parámetros predeterminados, ejecuta este comando:
eksctl create nodegroup --cluster=CLUSTER_NAME --name=NODEGROUP_NAME --region REGION_NAMENota: Sustituye CLUSTER_NAME por el nombre de tu clúster, NODEGROUP_NAME por el nombre del grupo de nodos y REGION_NAME por tu región de AWS.
Los parámetros predeterminados son los siguientes:
Instance type = m5.largeAMI : latest AWS EKS AMI Nodes-desired capacity = 2 Nodes-min capacity =2 Nodes-max capacity=2Nota: De forma predeterminada, los nuevos grupos de nodos heredan la versión de Kubernetes del plano de control. Puedes especificar una versión diferente de Kubernetes (por ejemplo, version=1.27). Para usar la versión más reciente de Kubernetes, ejecuta el comando –version=latest.
-
Para confirmar que los nuevos grupos de nodos están asociados al clúster y comprobar que los nodos se han unido al clúster, ejecuta el siguiente comando:
kubectl get nodes eksctl get nodegroups --cluster CLUSTER_NAME --region REGION_NAMENota: Sustituye CLUSTER_NAME por el nombre de tu clúster y REGION_NAME por tu región.
-
En el resultado, confirma que el estado del grupo de nodos es ACTIVE y que el estado del nodo es READY.
Ejemplo de estado de un grupo de nodos:eksctl get nodegroups --cluster yourClusterName --region yourRegionName CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE clusterName example-workers ACTIVE 2023-10-28T14:30:00Z 2 2 2 m5.large AL2_x86_64 eks-example-workers-11223344 managedEjemplo de estado de nodo:
kubectl get nodes NAME STATUS ROLES AGE VERSION ip-192-168-100-101.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1 ip-192-168-100-102.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1
Crear un grupo de nodos con parámetros personalizados
-
Define los parámetros del nuevo grupo de nodos en un archivo de configuración. Por ejemplo:
kind: ClusterConfig apiVersion: eksctl.io/v1alpha5 metadata: name: CLUSTER_NAME region: REGION_NAME nodeGroups: - name: NODEGROUP_NAME availabilityZones: ["AVAILABILITY_ZONE"] desiredCapacity: 3 instanceType: m5.large iam: instanceProfileARN: "arn:aws:iam::444455556666:instance-profile/eks-nodes-base-role" #Attaching IAM role instanceRoleARN: "arn:aws:iam::444455556666:role/eks-nodes-base-role" privateNetworking: true securityGroups: withShared: true withLocal: true attachIDs: ['SECURITY_GROUP_ID'] ssh: publicKeyName: 'KEY-PAIR-NAME' kubeletExtraConfig: kubeReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" kubeReservedCgroup: "/kube-reserved" systemReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" tags: 'environment': 'development' - name: ng-2-builders #example of a nodegroup that uses 50% spot instances and 50% on demand instances: minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotInstancePools: 2 tags: 'environment': 'production'Nota: Sustituye CLUSTER_NAME por el nombre de tu clúster, REGION_NAME por tu región de AWS y NODEGROUP_NAME por el nombre del grupo de nodos. SECURITY_GROUP_ID por el ID de tu grupo de seguridad, KEY_PAIR_NAME por el nombre de tu par de claves y AVAILABILITY_ZONE por tu zona de disponibilidad.
Para obtener más información sobre los parámetros compatibles y los tipos de grupos de nodos, consulta Grupos de nodos.
-
Para crear un grupo de nodos adicional con el archivo de configuración, ejecuta el siguiente comando:
eksctl create nodegroup --config-file=CONFIG_FILENota: Sustituye CONFIG_FILE por el nombre del archivo de configuración.
-
(Opcional) El comando del paso 2 despliega una pila de AWS CloudFormation para crear recursos para el grupo de nodos de EKS. Para comprobar el estado de la pila, accede a la consola de CloudFormation y confirma que la región de AWS es la misma que la del clúster.
Cuando la pila esté en estado CREATE_COMPLETE, el comando eksctl se cierra correctamente. -
Para confirmar que los nuevos grupos de nodos están asociados al clúster y comprobar que los nodos se han unido al clúster, ejecuta el siguiente comando:
kubectl get nodes eksctl get nodegroups --cluster CLUSTER_NAME --region REGION_NAMENota: Sustituye CLUSTER_NAME por el nombre de tu clúster y REGION_NAME por tu región.
En el resultado, confirma que el estado del grupo de nodos es ACTIVE y que el estado del nodo es READY.
Ejemplo de estado de un grupo de nodos:
eksctl get nodegroups --cluster yourClusterName --region yourRegionName CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE clusterName example-workers ACTIVE 2023-10-28T14:30:00Z 2 2 3 m5.large AL2_x86_64 eks-example-workers-11223344 managedEjemplo de estado de nodo:
kubectl get nodes NAME STATUS ROLES AGE VERSION ip-192-168-100-101.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1 ip-192-168-100-102.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1 ip-192-168-100-103.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1
- Temas
- Containers
- Etiquetas
- Amazon Elastic Kubernetes Service
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace 3 meses
- preguntada hace 6 meses
- preguntada hace 5 meses
- preguntada hace 3 meses