Come posso creare più gruppi di nodi per i nodi Amazon EKS utilizzando eksctl?
Desidero creare più gruppi di nodi per i nodi di Amazon Elastic Kubernetes Service (Amazon EKS) utilizzando eksctl.
Risoluzione
Puoi creare un gruppo di nodi con eksctl e parametri predefiniti. Oppure creane uno con parametri personalizzati e un file di configurazione per più gruppi di nodi.
Nota: per installare l'ultima versione di eksctl, consulta Opzioni di installazione per Eksctl.
Per verificare che eksctl sia configurato e installato sul computer locale, apri il terminale o il prompt dei comandi che preferisci ed esegui questo comando:
eksctl version
Quindi scegli una delle seguenti risoluzioni in base al tipo di parametri che desideri utilizzare.
Crea un gruppo di nodi con parametri predefiniti
-
Per creare un gruppo di nodi aggiuntivo con parametri predefiniti, esegui questo comando:
eksctl create nodegroup --cluster=CLUSTER_NAME --name=NODEGROUP_NAME --region REGION_NAMENota: sostituisci CLUSTER_NAME con il nome del tuo cluster, NODEGROUP_NAME con il nome del tuo gruppo di nodi e REGION_NAME con la tua Regione AWS.
Di seguito sono riportati i parametri predefiniti:
Instance type = m5.largeAMI : latest AWS EKS AMI Nodes-desired capacity = 2 Nodes-min capacity =2 Nodes-max capacity=2Nota: per impostazione predefinita, i nuovi gruppi di nodi ereditano la versione di Kubernetes dal piano di controllo (control-plane). Puoi specificare una versione diversa di Kubernetes (ad esempio, version=1.27). Per utilizzare la versione più recente di Kubernetes, esegui il comando –version=latest.
-
Per verificare che i nuovi gruppi di nodi siano collegati al cluster e che i nodi si siano uniti al cluster, esegui questo comando:
kubectl get nodes eksctl get nodegroups --cluster CLUSTER_NAME --region REGION_NAMENota: sostituisci CLUSTER_NAME con il nome del tuo cluster e REGION_NAME con la tua Regione AWS.
-
Nell'output, verifica che lo stato del gruppo di nodi sia ATTIVO e che lo stato del nodo sia PRONTO.
Esempio di stato del gruppo di nodi: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 managedEsempio di stato del 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
Crea un gruppo di nodi con parametri personalizzati
-
Definisci i parametri per il nuovo gruppo di nodi in un file di configurazione. Ad esempio:
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: sostituisci CLUSTER_NAME con il nome del tuo cluster, REGION_NAME con la tua Regione AWS, NODEGROUP_NAME con il nome del tuo gruppo di nodi. Sostituisci inoltre SECURITY_GROUP_ID con l'ID del tuo gruppo di sicurezza, KEY_PAIR_NAME con il nome della tua coppia di chiavi e AVAILABILITY_ZONE con la tua zona di disponibilità.
Per ulteriori informazioni sui parametri supportati e sui tipi di gruppi di nodi, consulta Gruppi di nodi.
-
Per creare un gruppo di nodi aggiuntivo con il file di configurazione, esegui questo comando:
eksctl create nodegroup --config-file=CONFIG_FILENota: sostituisci CONFIG_FILE con il nome del tuo file di configurazione.
-
(Facoltativo) Il comando nella fase 2 distribuisce uno stack di AWS CloudFormation per creare risorse per il gruppo di nodi EKS. Per verificare lo stato dello stack, accedi alla console CloudFormation e verifica che la Regione AWS sia la stessa del cluster.
Una volta che lo stack è nello stato CREATE_COMPLETE, il comando eksctl esce correttamente. -
Per verificare che i nuovi gruppi di nodi siano collegati al cluster e che i nodi si siano uniti al cluster, esegui questo comando:
kubectl get nodes eksctl get nodegroups --cluster CLUSTER_NAME --region REGION_NAMENota: sostituisci CLUSTER_NAME con il nome del tuo cluster e REGION_NAME con la tua Regione AWS.
Nell'output, verifica che lo stato del gruppo di nodi sia ATTIVO e che lo stato del nodo sia PRONTO.
Esempio di stato del gruppo di nodi:
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 managedEsempio di stato del 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
- Argomenti
- Containers
- Lingua
- Italiano
