Comment puis-je créer plusieurs groupes de nœuds pour les nœuds de travail Amazon EKS à l'aide d'eksctl ?

Dernière mise à jour : 20/08/2020

Je souhaite créer plusieurs groupes de nœuds pour les nœuds de travail Amazon Elastic Kubernetes Service (Amazon EKS) à l'aide d'eksctl.

Brève description

Vous pouvez créer un groupe de nœuds de travail à l'aide d'eksctl avec les paramètres par défaut ou avec des paramètres personnalisés en utilisant un fichier de configuration pour plusieurs groupes de nœuds.

Solution

Créer un groupe de nœuds de travail avec les paramètres par défaut

1.    Installez eksctl.

2.    Pour vérifier qu'eksctl est configuré et installé sur le terminal avec les autorisations appropriées, exécutez la commande suivante :

$ eksctl version

3.    Pour créer un groupe de nœuds de travail supplémentaire avec les paramètres par défaut, exécutez la commande suivante :

$ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionName

Voici les paramètres par défaut :

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

Remarque : par défaut, les nouveaux groupes de nœuds héritent de la version de Kubernetes installée à partir du plan de contrôle (–version=auto). Toutefois, vous pouvez spécifier une autre version de Kubernetes (exemple : version=1.13). Pour utiliser la dernière version de Kubernetes, exécutez la commande –version=latest.

4.    Ouvrez la console AWS CloudFormation, et puis choisissez la pile associée au groupe de nœuds que vous avez créé. Choisissez ensuite l'onglet « Events » (Événements) pour rechercher un événement AWS CloudFormation indiquant que votre pile est déployée.

5.    Exécutez les commandes suivantes pour vérifier que les nouveaux groupes de nœuds de travail sont attachés au cluster et pour vous assurer que la configuration du groupe de nœuds est appliquée :

$ Kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName

Créer un groupe de nœuds de travail avec des paramètres personnalisés

1.    Définissez les paramètres du nouveau groupe de nœuds de travail dans un fichier de configuration. Par exemple :

kind: ClusterConfig
apiVersion: eksctl.io/v1alpha5
metadata:
    name: yourClusterName
    region: yourRegionName
nodeGroups:
  - name: ng1-Workers
    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'

2.    Pour créer un groupe de nœuds de travail supplémentaire à l'aide du fichier de configuration, exécutez la commande suivante :

$ eksctl create nodegroup --config-file= yourConfigFileName

3.    Ouvrez la console AWS CloudFormation, et puis choisissez la pile associée au groupe de nœuds que vous avez créé. Choisissez ensuite l'onglet « Events » (Événements) pour rechercher un événement AWS CloudFormation indiquant que votre pile est déployée.

4.    Exécutez les commandes suivantes pour vérifier que les nouveaux groupes de nœuds de travail sont attachés au cluster et pour vous assurer que la configuration du groupe de nœuds est appliquée :

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

Vous devriez constater que vos nœuds de travail ont rejoint le cluster. Deux groupes de nœuds doivent être visibles via eksctl.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?