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

Lecture de 3 minute(s)
0

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

Brève description

Vous pouvez créer un groupe de nœuds à 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.

Résolution

Créer un groupe de nœuds 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 supplémentaire avec les paramètres par défaut, exécutez cette commande :

$ 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, 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 sont attachés au cluster et 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 avec des paramètres personnalisés

1.    Définissez les paramètres du nouveau groupe de nœuds 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 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 sont attachés au cluster et que la configuration du groupe de nœuds est appliquée :

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

Vous devez voir que vos nœuds ont rejoint le cluster. Vous pouvez voir que les deux groupes de nœuds sont visibles en utilisant eksctl.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans