

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création et gestion de clusters
<a name="creating-and-managing-clusters"></a>

Cette rubrique explique comment créer et supprimer des clusters EKS à l'aide d'Eksctl. Vous pouvez créer des clusters à l'aide d'une commande CLI ou en créant un fichier YAML de configuration de cluster.

## Création d'un cluster simple
<a name="_creating_a_simple_cluster"></a>

Créez un cluster simple à l'aide de la commande suivante :

```
eksctl create cluster
```

Cela créera un cluster EKS dans votre région par défaut (telle que spécifiée par la configuration de votre CLI AWS) avec un groupe de nœuds géré contenant deux nœuds m5.large.

eksctl crée désormais un groupe de nœuds géré par défaut lorsqu'aucun fichier de configuration n'est utilisé. Pour créer un groupe de nœuds autogéré, passez `--managed=false` à ou. `eksctl create cluster` `eksctl create nodegroup`

### Considérations
<a name="_considerations"></a>
+ Lorsque vous créez des clusters dans`us-east-1`, vous pouvez rencontrer un`UnsupportedAvailabilityZoneException`. Si cela se produit, copiez les zones suggérées et passez le `--zones` drapeau, par exemple :`eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d`. Ce problème peut se produire dans d'autres régions, mais il est moins courant. Dans la plupart des cas, vous n'aurez pas besoin d'utiliser le `--zone` drapeau.

## Créer un cluster à l'aide du fichier de configuration
<a name="_create_cluster_using_config_file"></a>

Vous pouvez créer un cluster à l'aide d'un fichier de configuration au lieu d'indicateurs.

Tout d'abord, créez `cluster.yaml` le fichier :

```
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: basic-cluster
  region: eu-north-1

nodeGroups:
  - name: ng-1
    instanceType: m5.large
    desiredCapacity: 10
    volumeSize: 80
    ssh:
      allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key
  - name: ng-2
    instanceType: m5.xlarge
    desiredCapacity: 2
    volumeSize: 100
    ssh:
      publicKeyPath: ~/.ssh/ec2_id_rsa.pub
```

Ensuite, exécutez cette commande :

```
eksctl create cluster -f cluster.yaml
```

Cela créera un cluster tel que décrit.

Si vous deviez utiliser un VPC existant, vous pouvez utiliser un fichier de configuration comme celui-ci :

```
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: cluster-in-existing-vpc
  region: eu-north-1

vpc:
  subnets:
    private:
      eu-north-1a: { id: subnet-0ff156e0c4a6d300c }
      eu-north-1b: { id: subnet-0549cdab573695c03 }
      eu-north-1c: { id: subnet-0426fb4a607393184 }

nodeGroups:
  - name: ng-1-workers
    labels: { role: workers }
    instanceType: m5.xlarge
    desiredCapacity: 10
    privateNetworking: true
  - name: ng-2-builders
    labels: { role: builders }
    instanceType: m5.2xlarge
    desiredCapacity: 2
    privateNetworking: true
    iam:
      withAddonPolicies:
        imageBuilder: true
```

Le nom du cluster ou du groupe de nœuds ne doit contenir que des caractères alphanumériques (en distinguant majuscules et minuscules) et des tirets. Il doit commencer par un caractère alphabétique et ne doit pas dépasser 128 caractères, sinon vous recevrez une erreur de validation. Pour plus d'informations, consultez la section [Créer une pile depuis la CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-parameters.html) dans le guide de CLoudFormation l'utilisateur d'AWS.

## Mettre à jour kubeconfig pour le nouveau cluster
<a name="_update_kubeconfig_for_new_cluster"></a>

Une fois le cluster créé, la configuration kubernetes appropriée sera ajoutée à votre fichier kubeconfig. Il s'agit du fichier que vous avez configuré dans la variable d'environnement `KUBECONFIG` ou `~/.kube/config` par défaut. Le chemin d'accès au fichier kubeconfig peut être remplacé à l'aide de l'indicateur. `--kubeconfig`

Autres indicateurs qui peuvent modifier la façon dont le fichier kubeconfig est écrit :


| pour restricteur | type | use | valeur par défaut | 
| --- | --- | --- | --- | 
| --kubeconfig | chaîne | chemin pour écrire kubeconfig (incompatible avec --auto-kubeconfig) | $KUBECONFIG ou \~/. kube/config | 
| --set-kubeconfig-context | bool | si vrai, alors le contexte actuel sera défini dans kubeconfig ; si un contexte est déjà défini, il sera remplacé | true | 
| --auto-kubeconfig | bool | enregistrer le fichier kubeconfig par nom de cluster | true | 
| --write-kubeconfig | bool | activer/désactiver l'écriture de kubeconfig | true | 

## supprimer un cluster
<a name="_delete_cluster"></a>

Pour supprimer ce cluster, exécutez :

```
eksctl delete cluster -f cluster.yaml
```

**Avertissement**  
Utilisez l'`--wait`indicateur lors des opérations de suppression pour vous assurer que les erreurs de suppression sont correctement signalées.

Sans cet `--wait` indicateur, eksctl n'effectuera qu'une opération de suppression sur la CloudFormation pile du cluster et n'attendra pas sa suppression. Dans certains cas, les ressources AWS utilisant le cluster ou son VPC peuvent entraîner l'échec de la suppression du cluster. Si votre suppression échoue ou si vous oubliez l'indicateur d'attente, vous devrez peut-être accéder à l' CloudFormation interface graphique et supprimer les piles eks qui s'y trouvent.

**Avertissement**  
Les politiques PDB peuvent bloquer la suppression des nœuds lors de la suppression du cluster.

Lors de la suppression d'un cluster contenant des groupes de nœuds, les politiques Pod Disruption Budget (PDB) peuvent empêcher la suppression réussie des nœuds. Par exemple, les clusters `aws-ebs-csi-driver` installés comportent généralement deux pods dotés d'une politique PDB autorisant l'indisponibilité d'un seul pod à la fois, rendant l'autre pod inévitable lors de la suppression. Pour supprimer correctement le cluster dans ces scénarios, utilisez l'`disable-nodegroup-eviction`indicateur pour contourner les vérifications de politique PDB :

```
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
```

Consultez le [https://github.com/eksctl-io/eksctl/tree/master/examples](https://github.com/eksctl-io/eksctl/tree/master/examples)répertoire dans le GitHub dépôt eksctl pour d'autres exemples de fichiers de configuration.

## Course à sec
<a name="_dry_run"></a>

La fonctionnalité d'exécution à sec permet de générer un ClusterConfig fichier qui ignore la création de clusters et génère un ClusterConfig fichier qui représente les options de la CLI fournies et contient les valeurs par défaut définies par eksctl.

Vous trouverez plus d'informations sur la page [Dry Run](dry-run.md).