Je n'arrive pas à supprimer mon cluster Amazon Elastic Kubernetes Service (Amazon EKS). Comment puis-je résoudre cette erreur ?
Brève description
Pour supprimer un cluster Amazon EKS, vous devez d'abord supprimer tous les groupes de nœuds gérés associés au cluster. Pour plus d'informations, consultez la section Suppression d'un cluster Amazon EKS.
Remarque : Il est recommandé de supprimer le cluster à l'aide du même outil que celui que vous avez utilisé pour le créer.
Important : Si vous créez des équilibreurs de charge à l'aide d'AWS Load Balancer Controller (sur le site Web de GitHub), des Application Load Balancers ou Network Load Balancers sont créés pour vous. Si vous supprimez votre cluster avant de supprimer les entrées ou les services Kubernetes gérant l'équilibreur de charge, vous devez supprimer manuellement l'équilibreur de charge. Consultez les sections Supprimer un Application Load Balancer, Supprimer un Network Load Balancer et Supprimer votre équilibreur de charge (Classique).
Si vous ne parvenez toujours pas à supprimer les composants de votre cluster, envisagez les options suivantes en fonction de votre scénario :
- Le message d'erreur « The following resource(s) failed to delete » ou « resource XXXXXXX has a dependent object » s'affiche. Suivez les étapes décrites dans la section Supprimer la pile AWS CloudFormation qui a créé le composant de cluster.
- Vous avez supprimé votre cluster et les nœuds sont toujours actifs. La suppression d'un cluster n’entraîne pas automatiquement celle des nœuds autogérés. Vous devez supprimer les nœuds manuellement. Suivez les étapes décrites dans la section Supprimer les nœuds autogérés.
- Votre cluster est bloqué à l'état SUPPRESSION. Vérifiez qu'aucune politique ou qu’aucun rôle Gestion des identités et des accès AWS (AWS IAM) manquant n'empêche la suppression de votre cluster. Si le rôle IAM est manquant, suivez les étapes décrites dans la section Recréer le rôle de service IAM pour Amazon EKS.
- L'appel d'API DeleteCluster Amazon EKS échoue avec le message d'erreur « Cannot delete because cluster XXXXXXX currently has an update in progress. » Cependant, vous constatez que le cluster est à l'état Actif et qu'aucune mise à jour n'est en cours. Dans ce cas, consultez la section Effectuer une mise à niveau automatique de la version de la plateforme Amazon EKS.
Remarque : Il est normal que la suppression de votre cluster prenne du temps. Aucun frais ne vous est facturé pour un cluster à l'état SUPPRESSION.
Résolution
Remarque : Si des erreurs surviennent lors de l’exécution des commandes de l’interface de la ligne de commande AWS (AWS CLI), vérifiez que vous utilisez bien la version la plus récente de l’AWS CLI.
Supprimer la pile AWS CloudFormation qui a créé le composant de cluster
1. Vous pouvez supprimer la pile sur la console AWS CloudFormation. Vous pouvez également utiliser la commande delete-stack de l'AWS CLI.
Si vous ne pouvez pas supprimer votre pile en raison de dépendances, supprimez d'abord manuellement les ressources qui ont ces dépendances, ou supprimez les dépendances. Puis, essayez à nouveau de supprimer la pile.
Pour conserver les ressources dont la suppression échoue, ignorez les ressources lorsque vous supprimez la pile. Cette option n'est disponible que pour les ressources ou les piles à l'état DELETE_FAILED. Les ressources ignorées restent actives dans le compte, mais la pile CloudFormation est supprimée. Vous pouvez ensuite supprimer les ressources via la console de gestion AWS.
2. Une fois la pile supprimée, essayez à nouveau de supprimer votre cluster.
Si la pile tarde à être supprimée ou si elle échoue, examinez l'appel d'API DeleteCluster dans AWS CloudTrail.
Supprimer des nœuds autogérés
Si vous avez créé manuellement une instance Amazon Elastic Compute Cloud (Amazon EC2), résiliez votre instance. Si vous avez créé les nœuds par un groupe Auto Scaling, supprimez le groupe Auto Scaling pour supprimer les nœuds. Si vous avez utilisé CloudFormation pour créer les nœuds, supprimez la pile pour supprimer les nœuds.
Recréer le rôle de service IAM pour Amazon EKS
Vous devez disposer d'un rôle de service IAM qui permet à Amazon EKS de passer des appels vers d'autres services AWS pour vous. Si vous supprimez ou modifiez le rôle après avoir créé le cluster, celui-ci ne parvient pas à supprimer certaines ressources. Par exemple, le cluster peut ne pas supprimer l'interface réseau Elastic utilisée pour les communications privées avec les instances du plan de contrôle.
1. Recréez le rôle IAM.
Important : Assurez-vous de choisir Amazon EKS comme service pour gérer les clusters à votre place.
2. Attachez les politiques gérées par AmazonEKSClusterPolicy au rôle IAM.
Effectuer une mise à niveau automatique de la version de la plateforme Amazon EKS
Amazon EKS met automatiquement à niveau tous les clusters existants vers la dernière version de la plateforme Amazon EKS pour la version mineure de Kubernetes correspondante. Comme ces mises à jour ne sont pas initiées par vous, elles n'apparaissent pas en tant que mises à jour dans la console. Les mises à niveau automatiques des versions existantes de la plateforme Amazon EKS sont déployées de manière incrémentielle et peuvent prendre un certain temps. Une fois que vos clusters ont adopté leur dernière version de plateforme pour la version mineure de Kubernetes correspondante, vous pouvez retenter leur suppression.