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
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
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 (comme spécifié par la configuration de votre interface de ligne de commande 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
-
Lorsque vous créez des clusters dans
us-east-1, vous pouvez rencontrer unUnsupportedAvailabilityZoneException. Si cela se produit, copiez les zones suggérées et passez le--zonesdrapeau, par exemple :eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d. Ce problème peut survenir dans d'autres régions, mais il est moins fréquent. Dans la plupart des cas, vous n'aurez pas besoin d'utiliser le--zonedrapeau.
Créer un cluster à l'aide du fichier de configuration
Vous pouvez créer un cluster à l'aide d'un fichier de configuration au lieu d'indicateurs.
Tout d'abord, créez un cluster.yaml 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
Exécutez ensuite cette commande :
eksctl create cluster -f cluster.yaml
Cela créera un cluster comme décrit.
Si vous avez besoin d'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 le nom du groupe de nœuds ne doit contenir que des caractères alphanumériques (distinction majuscules/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 dans le guide de CLoudFormation l'utilisateur AWS.
Mettre à jour kubeconfig pour un nouveau cluster
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 modifié à 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 c'est vrai, 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
Pour supprimer ce cluster, exécutez :
eksctl delete cluster -f cluster.yaml
Avertissement
Utilisez l'--waitindicateur lors des opérations de suppression pour vous assurer que les erreurs de suppression sont correctement signalées.
Sans l'--waitindicateur, eksctl émettra une opération de suppression uniquement 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 le drapeau d'attente, vous devrez peut-être accéder à l' CloudFormation interface graphique et supprimer les piles eks à partir de là.
Avertissement
Les politiques PDB peuvent bloquer la suppression de nœuds lors de la suppression du cluster.
Lors de la suppression d'un cluster contenant des groupes de nœuds, les politiques PDB (Pod Disruption Budget) peuvent empêcher la suppression des nœuds avec succès. Par exemple, les clusters sur lesquels ils sont aws-ebs-csi-driver installés possèdent généralement deux espaces avec une politique PDB autorisant l'indisponibilité d'un seul espace à la fois, ce qui rend l'autre espace impossible à évincer lors de la suppression. Pour supprimer correctement le cluster dans les scénarios suivants, utilisez l'disable-nodegroup-evictionindicateur pour contourner les vérifications de politique PDB :
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
Consultez le examples/
Course à sec
La fonction d'exécution à sec permet de générer un ClusterConfig fichier qui ignore la création de cluster et génère un ClusterConfig fichier qui représente les options CLI fournies et contient les valeurs par défaut définies par eksctl.
Vous trouverez plus d'informations sur la page Dry Run.