Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come posso creare più gruppi di nodi per i nodi Amazon EKS utilizzando eksctl?

4 minuti di lettura
0

Desidero creare più gruppi di nodi per i nodi di Amazon Elastic Kubernetes Service (Amazon EKS) utilizzando eksctl.

Breve descrizione

È possibile 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.

Per installare l'ultima versione di eksctl, vedi Installazione sul sito web eksctl.

Per confermare che eksctl sia configurato e installato sul terminale con le autorizzazioni corrette, esegui questo comando:

$ eksctl version

Quindi, scegli una delle seguenti risoluzioni in base al tipo di parametri che desideri utilizzare.

Risoluzione

Crea un gruppo di nodi con parametri predefiniti

  1. Per creare un gruppo di nodi aggiuntivo con parametri predefiniti, esegui questo comando:

    $ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionName
  2. Di seguito sono riportati i parametri predefiniti:

    Instance type = m5.largeAMI : lastest AWS EKS AMI
    Nodes-desired capacity = 2
    Nodes-min capacity =2
    Nodes-max capacity=2

    Nota: per impostazione predefinita, i nuovi gruppi di nodi ereditano la versione di Kubernetes dal piano di controllo (–version=auto). 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.

  3. Per confermare che i nuovi gruppi di nodi siano collegati al cluster e verificare che i nodi siano entrati a far parte del cluster, esegui questi comandi:

    $ kubectl get nodes
    $ eksctl get nodegroups --cluster yourClusterName --region yourRegionName

    Nell'output, conferma che lo stato del nodo è PRONTO e lo stato del gruppo di nodi è ATTIVO. Ad esempio:

    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  ngWorkers  ACTIVE  Date&Time    *        *              *             m5.large      AL2_x86_64   ASGNAME   managed
    

    ****Stato del nodo


    $ kubectl get nodes
    
    NAME                                    STATUS ROLES AGE VERSION         
    ip-***-**-**-***.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx  
    ip-***-**-***-**.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx
    
    Create a node group with custom parameters
    
    

Crea un gruppo di nodi con parametri personalizzati

  1. Definisci i parametri per il nuovo gruppo di nodi in un file di configurazione. Ad esempio:

    kind: ClusterConfig
    apiVersion: eksctl.io/v1alpha5
    metadata:
        name: clusterName
        region: region
    nodeGroups:
      - name: ngWorkers
        availabilityZones: ["az-name"]
        desiredCapacity: 3
        instanceType: m5.large
        iam:
          instanceProfileARN: "arn:aws:iam::11111:instance-profile/eks-nodes-base-role" #Attaching IAM role
          instanceRoleARN: "arn:aws:iam::1111:role/eks-nodes-base-role"
        privateNetworking: true
        securityGroups:
          withShared: true
          withLocal: true
          attachIDs: ['sg-11111', 'sg-11112']
        ssh:
          publicKeyName: 'my-instance-key'
        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'

    Per ulteriori informazioni sui parametri supportati e sui tipi di nodegroup, consulta Nodegroups sul sito Web eksctl.

  2. Per creare un gruppo di nodi aggiuntivo con il file di configurazione, esegui il comando seguente:

    $ eksctl create nodegroup --config-file=yourConfigFileName
  3. (Facoltativo) Il comando nella fase 2 distribuisce uno stack AWS CloudFormation per creare risorse per il gruppo di nodi EKS. Per verificare lo stato dello stack, accedi alla console CloudFormation e conferma che la regione AWS è la stessa del cluster. 
    Dopo che lo stack è in stato CREATE_COMPLETE, il comando eksctl esce con successo.

  4. Per confermare che i nuovi gruppi di nodi siano collegati al cluster e per verificare che i nodi siano entrati a far parte del cluster, esegui questi comandi:

    $ kubectl get nodes
    $ eksctl get nodegroups --cluster yourClusterName --region yourRegionName

    Nell'output, conferma che lo stato del nodo è PRONTO e lo stato del gruppo di nodi è ATTIVO. Ad esempio:
    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  ngWorkers  ACTIVE  Date&Time    *        *              *             m5.large      AL2_x86_64   ASGNAME   managed

    Stato del nodo

    $ kubectl get nodes
    
    NAME                                    STATUS ROLES AGE VERSION         
    ip-***-**-**-***.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx  
    ip-***-**-***-**.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx
AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa