Pourquoi ne puis-je pas supprimer mon cluster Amazon ECS ?
Je ne peux pas supprimer mon cluster Amazon Elastic Container Service (Amazon ECS).
Brève description
Lorsque vous tentez de supprimer votre cluster, l'un des messages d'erreur suivants peut s'afficher :
- « Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Tasks are active. (Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsTasksException; Request ID: 144948ca-1614-40e7-a08b-80d7f1fe38f6; Proxy: null)'." (RequestToken: f389c9fe-8ce3-855c-581a-ebe32a9a9901, HandlerErrorCode: GeneralServiceException) »
- « Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Services are active. (Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsServicesException; Request ID: 1eb29389-dab7-4345-a453-cde2c2b54c60; Proxy: null)'." (RequestToken: ec646d54-de77-f96c-d9a6-ac04c520f45a, HandlerErrorCode: GeneralServiceException) »
- « Error: deleting ECS Cluster (arn:aws:ecs:REGION:000000000000:cluster/my-ecs-cluster): operation error ECS: DeleteCluster, https response error StatusCode: 400, RequestID: 128b7de0-45e3-4130-8c8c-dcceb27a8bb9, ClusterContainsContainerInstancesException: The Cluster cannât be deleted while Container Instances are active or draining. »
- « An error occurred (UpdateInProgressException) when calling the DeleteCluster operation: The specified cluster is in a busy state. Cluster attachments must be in UPDATE_COMPLETE or UPDATE_FAILED state before they can be updated. Wait and try again. »
Pour supprimer un cluster Amazon ECS, vous devez d'abord supprimer tous les services, arrêter toutes les tâches en cours d'exécution, annuler l’enregistrement de toutes les instances de conteneur et supprimer tous les espaces de noms.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
(Facultatif) Identifier les espaces de noms des services Amazon ECS
Avant de supprimer le service et les tâches, il est recommandé d'identifier l'espace de noms AWS Cloud Map non essentiel associé à votre service.
Si votre service utilise la découverte de service, exécutez la commande describe-services de l'interface de ligne de commande AWS suivante pour identifier l'ARN du service de découverte de service :
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].serviceRegistries[*].registryArn --output text
Remarque : Remplacez CLUSTER_NAME par le nom du cluster et SERVICE_ARN par l'ARN du service Amazon ECS.
Puis, exécutez la commande get-service suivante pour identifier l'ID de l'espace de noms :
aws servicediscovery get-service --id SERVICE_ID --query Service.NamespaceId --output text
Remarque : Remplacez SERVICE_ID par l'ID du service de découverte de service.
Si votre service utilise Service Connect, exécutez la commande describe-services suivante pour identifier l'ID de l'espace de noms :
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].deployments[].serviceConnectConfiguration.namespace --output text
Remarque : Remplacez CLUSTER_NAME par le nom du cluster et SERVICE_ARN par l'ARN du service Amazon ECS.
Arrêter toutes les tâches en cours
Pour répertorier toutes les tâches en cours, exécutez la commande list-tasks suivante :
aws ecs list-tasks --cluster CLUSTER_NAME --region REGION
Remarque : Remplacez CLUSTER_NAME par le nom de votre cluster et REGION par votre région AWS.
Pour arrêter une tâche, exécutez la commande stop-task suivante :
aws ecs stop-task --cluster CLUSTER_NAME --task TASK_ARN --region REGION
Remarque : Remplacez CLUSTER_NAME par le nom du cluster, TASK_ARN par l'ARN de la tâche et REGION par votre région.
Vous pouvez également utiliser la console Amazon ECS pour arrêter la tâche.
Supprimer les services Amazon ECS
Pour répertorier tous les services du cluster, exécutez la commande list-services suivante :
aws ecs list-services --cluster CLUSTER_NAME
Remarque : Remplacez CLUSTER_NAME par le nom du cluster.
Pour supprimer un service, exécutez la commande delete-service suivante :
aws ecs delete-service --cluster CLUSTER_NAME --service SERVICE_ARN --force --region REGION
Remarque : Remplacez CLUSTER_NAME par le nom du cluster, SERVICE_ARN par l'ARN du service et REGION par votre région.
Ou bien, utilisez la console Amazon ECS pour supprimer le service.
Annuler l’enregistrement des instances de conteneur Amazon ECS
Pour répertorier toutes les instances de conteneur enregistrées, exécutez la commande list-container-instances suivante :
aws ecs list-container-instances --cluster CLUSTER_NAME --region REGION --output text --query containerInstanceArns
Remarque : Remplacez CLUSTER_NAME par le nom de votre cluster et REGION par votre région.
Pour annuler l'enregistrement de l'instance de conteneur du cluster, exécutez la commande deregister-container-instance suivante :
aws ecs deregister-container-instance --cluster CLUSTER_NAME --region REGION --container-instance CONTAINER_INSTANCE_ARN --force
Remarque : Remplacez CLUSTER_NAME par le nom du cluster, REGION par votre région et CONTAINER_INSTANCE_ARN par l'ARN de l'instance de conteneur.
Vous pouvez également utiliser la console Amazon ECS pour annuler l'enregistrement de l'instance de conteneur.
Supprimer l'espace de noms
Annuler l’enregistrement de toutes les instances de service
Pour répertorier toutes les instances de découverte de service dans un service, exécutez la commande list-instances suivante :
aws servicediscovery list-instances --service-id SERVICE_DISCOVERY_ID_EXAMPLE
Remarque : Remplacez SERVICE_DISCOVERY_ID_EXAMPLE par l'ID du service de découverte de service.
Pour annuler l’enregistrement de l'instance du service de découverte de service, exécutez la commande deregister-instance suivante :
aws servicediscovery deregister-instance --service-id SERVICE_DISCOVERY_ID_EXAMPLE --instance-id INSTANCE_EXAMPLE
Remarque : Remplacez SERVICE_DISCOVERY_ID_EXAMPLE par l'ID du service de découverte de service et INSTANCE_EXAMPLE par l'ID d'instance.
Supprimer tous les services de découverte de service
Pour afficher tous les services de découverte de service dans l'espace de noms, exécutez la commande list-services suivante :
aws servicediscovery list-services --filters Name=NAMESPACE_ID,Values=NAMESPACE_EXAMPLE,Condition=EQ
Remarque : Remplacez NAMESPACE_EXAMPLE par l’ID de votre espace de noms.
Pour supprimer un service de découverte de service, exécutez la commande delete-service suivante :
aws servicediscovery delete-service --id SERVICE_ID_EXAMPLE
Remarque : Remplacez SERVICE_ID_EXAMPLE par l'ID du service.
Supprimer l'espace de noms
Pour supprimer l'espace de noms, exécutez la commande delete-namespace suivante :
aws servicediscovery delete-namespace --id NAMESPACE_EXAMPLE
Remarque : Remplacez NAMESPACE_EXAMPLE par l’ID de votre espace de noms.
Vous pouvez également utiliser la console AWS Cloud Map pour supprimer l'espace de noms.
Vérifier l'état des attachements de cluster
Si vous avez associé votre cluster à un fournisseur de capacité de groupe Amazon EC2 Auto Scaling, vérifiez l'état des attachements de cluster. Les attachements de cluster doivent avoir l’état UPDATE_COMPLETE ou UPDATE_FAILED avant que vous ne puissiez supprimer le cluster. Si vous supprimez un cluster dont les attachements sont à l’état UPDATE_IN_PROGRESS, l'erreur UpdateInProgressException s'affiche.
Pour vérifier les attachements de votre cluster, exécutez la commande describe-clusters suivante :
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].attachmentsStatus
Remarque : Remplacez CLUSTER_NAME par le nom du cluster.
Si les attachements de cluster sont à l’état UPDATE_IN_PROGRESS, attendez que l’état soit automatiquement résolu avant de supprimer le cluster.
(Facultatif) Supprimer les fournisseurs de capacité associés au cluster
Pour afficher les fournisseurs de capacité associés au cluster, exécutez la commande describe-clusters suivante :
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].capacityProviders[] --output text
Remarque : Remplacez CLUSTER_NAME par le nom du cluster.
Pour dissocier le fournisseur de capacité du cluster, exécutez la commande put-cluster-capacity providers suivante :
aws ecs put-cluster-capacity-providers --cluster CLUSTER_NAME --capacity-providers [] --default-capacity-provider-strategy []
Remarque : Remplacez CLUSTER_NAME par le nom du cluster.
Pour supprimer le fournisseur de capacité, exécutez la commande delete-capacity-provider suivante :
aws ecs delete-capacity-provider --capacity-provider CAPACITY_PROVIDER_NAME
Remarque : Remplacez CAPACITY_PROVIDER_NAME par le nom du fournisseur de capacité.
Vous pouvez également utiliser la console Amazon ECS pour supprimer le fournisseur de capacité.
Supprimer le cluster
Pour supprimer le cluster, exécutez la commande delete-cluster suivante :
aws ecs delete-cluster --cluster CLUSTER_NAME
Remarque : Remplacez CLUSTER_NAME par le nom du cluster.
Ou bien, utilisez la console Amazon ECS pour supprimer le cluster.
Informations connexes
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
demandé il y a un an
demandé il y a un an
- Réponse acceptée
demandé il y a 2 ans
demandé il y a un an
AWS OFFICIELA mis à jour il y a 3 ans