Salta al contenuto

Perché non riesco a eliminare il mio cluster Amazon ECS?

6 minuti di lettura
0

Non riesco a eliminare il mio cluster Amazon Elastic Container Service (Amazon ECS).

Breve descrizione

Quando tenti di eliminare il cluster, potresti ricevere uno dei seguenti messaggi di errore:

  • "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 cannot 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."

Per eliminare un cluster Amazon ECS, devi prima eliminare tutti i servizi, arrestare tutte le attività in esecuzione, annullare la registrazione di tutte le istanze di container ed eliminare tutti i namespace.

Risoluzione

Nota: se ricevi errori durante l’esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

(Facoltativo) Identifica i namespace dei servizi Amazon ECS

Prima di eliminare il servizio e le attività, è consigliabile identificare il namespace AWS Cloud Map non essenziale associato al servizio.

Se il servizio utilizza il rilevamento servizi, esegui il seguente comando AWS CLI describe-services per identificare l'ARN del servizio di rilevamento servizi:

aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].serviceRegistries[*].registryArn --output text

Nota: sostituisci CLUSTER_NAME con il nome del cluster e SERVICE_ARN con l'ARN del servizio Amazon ECS.

Quindi esegui il seguente comando get-service per identificare l'ID del namespace:

aws servicediscovery get-service --id SERVICE_ID --query Service.NamespaceId --output text

Nota: sostituisci SERVICE_ID con l'ID del servizio di rilevamento servizi.

Se il servizio utilizza Service Connect, esegui il seguente comando describe-services per identificare l'ID del namespace:

aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].deployments[].serviceConnectConfiguration.namespace --output text

Nota: sostituisci CLUSTER_NAME con il nome del cluster e SERVICE_ARN con l'ARN del servizio Amazon ECS.

Arresta tutte le attività in esecuzione

Per elencare tutte le attività in esecuzione, esegui il seguente comando list-tasks:

aws ecs list-tasks --cluster CLUSTER_NAME --region REGION

Nota: sostituisci CLUSTER_NAME con il nome del cluster e REGION con la tua Regione AWS.

Per arrestare un'attività, esegui il seguente comando stop-task:

aws ecs stop-task --cluster CLUSTER_NAME --task TASK_ARN --region REGION

Nota: sostituisci CLUSTER_NAME con il nome del cluster, TASK_ARN con l'ARN dell'attività e REGION con la tua Regione.

Oppure utilizza la console Amazon ECS per arrestare l'attività.

Elimina i servizi Amazon ECS

Per elencare tutti i servizi nel cluster, esegui il seguente comando list-services:

aws ecs list-services --cluster CLUSTER_NAME

Nota: sostituisci CLUSTER_NAME con il nome del cluster.

Per eliminare un servizio, esegui il seguente comando delete-service:

aws ecs delete-service --cluster CLUSTER_NAME --service SERVICE_ARN --force --region REGION

Nota: sostituisci CLUSTER_NAME con il nome del cluster, SERVICE_ARN con l'ARN del servizio e REGION con la tua Regione.

Oppure utilizza la console Amazon ECS per eliminare il servizio.

Annulla la registrazione delle istanze di container Amazon ECS

Per elencare tutte le istanze di container registrate, esegui il seguente comando list-container-instances:

aws ecs list-container-instances --cluster CLUSTER_NAME --region REGION --output text --query containerInstanceArns

Nota: sostituisci CLUSTER_NAME con il nome del cluster e REGION con la tua Regione.

Per annullare la registrazione dell'istanza di container dal cluster, esegui il seguente comando deregister-container-instance:

aws ecs deregister-container-instance --cluster CLUSTER_NAME --region REGION --container-instance CONTAINER_INSTANCE_ARN --force

Nota: sostituisci CLUSTER_NAME con il nome del cluster, REGION con la tua Regione e CONTAINER_INSTANCE_ARN con l'ARN dell'istanza di container.

Oppure utilizza la console Amazon ECS per annullare la registrazione dell'istanza di container.

Elimina il panamense

Annulla la registrazione di tutte le istanze del servizio

Per elencare tutte le istanze di rilevamento servizi in un servizio, esegui il seguente comando list-instances:

aws servicediscovery list-instances --service-id SERVICE_DISCOVERY_ID_EXAMPLE

Nota: sostituisci SERVICE_DISCOVERY_ID_EXAMPLE con l'ID del servizio di rilevamento servizi.

Per annullare la registrazione dell'istanza dal servizio di rilevamento servizi, esegui il seguente comando deregister-instance:

aws servicediscovery deregister-instance --service-id SERVICE_DISCOVERY_ID_EXAMPLE --instance-id INSTANCE_EXAMPLE

Nota: sostituisciSERVICE_DISCOVERY_ID_EXAMPLE con l'ID del servizio di rilevamento servizi e INSTANCE_EXAMPLE con l'ID dell'istanza.

Elimina tutti i servizi di rilevamento servizi

Per visualizzare tutti i servizi di rilevamento servizi nel namespace, esegui il seguente comandolist-services:

aws servicediscovery list-services --filters Name=NAMESPACE_ID,Values=NAMESPACE_EXAMPLE,Condition=EQ

Nota: sostituisci NAMESPACE_EXAMPLE con l'ID del tuo namespace.

Per eliminare un servizio di rilevamento servizi, esegui il seguente comando delete-service:

aws servicediscovery delete-service --id SERVICE_ID_EXAMPLE

Nota: sostituisci SERVICE_ID_EXAMPLE con l'ID del servizio.

Elimina il namespace

Per eliminare il namespace, esegui il seguente comando delete-namespace:

aws servicediscovery delete-namespace --id NAMESPACE_EXAMPLE

Nota: sostituisci NAMESPACE_EXAMPLE con l'ID del tuo namespace.

Oppure utilizza la console AWS Cloud Map per eliminare il namespace.

Verifica lo stato dei collegamenti del cluster

Se hai associato il cluster a un provider di capacità del gruppo Amazon EC2 Auto Scaling, controlla lo stato dei collegamenti del cluster. I collegamenti del cluster devono avere lo stato UPDATE_COMPLETE o UPDATE_FAILED prima di eliminare il cluster. Se elimini un cluster con collegamenti del cluster che hanno lo stato UPDATE_IN_PROGRESS, ricevi l'errore UpdateInProgressException.

Per controllare i collegamenti del cluster, esegui il seguente comando describe-clusters:

aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].attachmentsStatus

Nota: sostituisci CLUSTER_NAME con il nome del cluster.

Se i collegamenti del cluster hanno lo stato UPDATE_IN_PROGRESS, attendi che lo stato si risolva automaticamente prima di eliminare il cluster.

(Facoltativo) Elimina i provider di capacità associati al cluster

Per visualizzare i provider di capacità associati al cluster, esegui il seguente comando describe-clusters:

aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].capacityProviders[] --output text

Nota: sostituisci CLUSTER_NAME con il nome del cluster.

Per dissociare il provider di capacità dal cluster, esegui il seguente comando put-cluster-capacity-providers:

aws ecs put-cluster-capacity-providers --cluster CLUSTER_NAME --capacity-providers [] --default-capacity-provider-strategy []

Nota: sostituisci CLUSTER_NAME con il nome del cluster.

Per eliminare il provider di capacità, esegui il seguente comando delete-capacity-provider:

aws ecs delete-capacity-provider --capacity-provider CAPACITY_PROVIDER_NAME

Nota: sostituisci CAPACITY_PROVIDER_NAME con il nome del provider di capacità.

Oppure utilizza la console Amazon ECS per eliminare il provider di capacità.

Elimina il cluster

Per eliminare il cluster, esegui il seguente comando delete-cluster:

aws ecs delete-cluster --cluster CLUSTER_NAME

Nota: sostituisci CLUSTER_NAME con il nome del cluster.

Oppure utilizza la console Amazon ECS per eliminare il cluster.

Informazioni correlate

Come posso risolvere i problemi che si verificano quando provo a configurare un nuovo provider di capacità o ad aggiornare un provider di capacità esistente per il mio cluster Amazon ECS?

AWS UFFICIALEAggiornata 2 anni fa