Warum kann ich meinen Amazon-ECS-Cluster nicht löschen?
Ich kann meinen Amazon Elastic Container Service (Amazon ECS)-Cluster nicht löschen.
Kurzbeschreibung
Wenn du versuchst, deinen Cluster zu löschen, wird möglicherweise eine der folgenden Fehlermeldungen angezeigt:
- „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.“
Um einen Amazon-ECS-Cluster zu löschen, musst du zuerst alle Services löschen, alle laufenden Aufgaben beenden, alle Container-Instances abmelden und alle Namespaces löschen.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
(Optional) Identifizieren der Amazon-ECS-Service-Namespaces
Bevor du den Service und die Aufgaben löschst, hat es sich bewährt, den nicht-essentiellen AWS Cloud Map-Namespace zu identifizieren, der deinem Service zugeordnet ist.
Wenn dein Service Serviceerkennung verwendet, führe den folgenden AWS-CLI-Befehl describe-services aus, um den ARN des Serviceerkennungs-Service zu identifizieren:
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].serviceRegistries[*].registryArn --output text
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen und SERVICE_ARN durch den Amazon-ECS-Service-ARN.
Führe danach den folgenden Befehl get-service aus, um die Namespace-ID zu identifizieren:
aws servicediscovery get-service --id SERVICE_ID --query Service.NamespaceId --output text
Hinweis: Ersetze SERVICE_ID durch die Serviceerkennungs-Service-ID.
Wenn dein Service Service Connect verwendet, führe den folgenden Befehl describe-services aus, um die Namespace-ID zu identifizieren:
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].deployments[].serviceConnectConfiguration.namespace --output text
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen und SERVICE_ARN durch den Amazon-ECS-Service-ARN.
Anhalten aller laufenden Aufgaben
Führe den folgenden Befehl list-tasks aus, um alle laufenden Aufgaben aufzulisten:
aws ecs list-tasks --cluster CLUSTER_NAME --region REGION
Hinweis: Ersetze CLUSTER_NAME durch den Namen des Clusters und REGION durch deine AWS-Region.
Führe den folgenden Befehl stop-task aus, um eine Aufgabe anzuhalten:
aws ecs stop-task --cluster CLUSTER_NAME --task TASK_ARN --region REGION
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen, TASK_ARN durch den Aufgaben-ARN und REGION durch deine Region.
Oder verwende die Amazon-ECS-Konsole, um die Aufgabe anzuhalten.
Löschen der Amazon-ECS-Services
Führe den folgenden Befehl list-services aus, um alle Services im Cluster aufzulisten:
aws ecs list-services --cluster CLUSTER_NAME
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen.
Führe den folgenden Befehl delete-service aus, um einen Service zu löschen:
aws ecs delete-service --cluster CLUSTER_NAME --service SERVICE_ARN --force --region REGION
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen, SERVICE_ARN durch den Service-ARN und REGION durch deine Region.
Oder verwende die Amazon-ECS-Konsole, um den Service zu löschen.
Abmeldung der Amazon-ECS-Container-Instances
Führe den folgenden Befehl list-container-instances aus, um alle registrierten Container-Instances aufzulisten:
aws ecs list-container-instances --cluster CLUSTER_NAME --region REGION --output text --query containerInstanceArns
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen und REGION durch deine AWS-Region.
Führe den folgenden Befehl deregister-container-instance aus, um die Container-Instance vom Cluster abzumelden:
aws ecs deregister-container-instance --cluster CLUSTER_NAME --region REGION --container-instance CONTAINER_INSTANCE_ARN --force
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen, REGION durch deine Region und CONTAINER_INSTANCE_ARN durch den Container-Instance-ARN.
Oder verwende die Amazon-ECS-Konsole, um die Container-Instance abzumelden.
Löschen des Namespace
Alle Service-Instances abmelden
Führe den folgenden Befehl list-instances aus, um alle Serviceerkennungs-Instances in einem Service aufzulisten:
aws servicediscovery list-instances --service-id SERVICE_DISCOVERY_ID_EXAMPLE
Hinweis: Ersetze SERVICE_DISCOVERY_ID_EXAMPLE durch die Serviceerkennungs-Service-ID.
Führe den folgenden Befehl deregister-instance aus, um die Instance vom Serviceerkennungs-Service abzumelden:
aws servicediscovery deregister-instance --service-id SERVICE_DISCOVERY_ID_EXAMPLE --instance-id INSTANCE_EXAMPLE
Hinweis: Ersetze SERVICE_DISCOVERY_ID_EXAMPLE durch die Serviceerkennungs-Service-ID und INSTANCE_EXAMPLE durch die ID der Instance.
Alle Serviceerkennungs-Services löschen
Führe den folgenden Befehl list-services aus, um alle Serviceerkennungs-Services im Namespace anzuzeigen:
aws servicediscovery list-services --filters Name=NAMESPACE_ID,Values=NAMESPACE_EXAMPLE,Condition=EQ
**Hinweis:**Ersetze NAMESPACE_EXAMPLE durch deine Namespace-ID.
Führe den folgenden Befehl delete-service aus, um einen Serviceerkennungs-Service zu löschen:
aws servicediscovery delete-service --id SERVICE_ID_EXAMPLE
**Hinweis:**Ersetze SERVICE_ID_EXAMPLE durch die Service-ID.
Lösche den Namespace
Führe den folgenden Befehl delete-namespace aus, um den Namespace zu löschen:
aws servicediscovery delete-namespace --id NAMESPACE_EXAMPLE
**Hinweis:**Ersetze NAMESPACE_EXAMPLE durch deine Namespace-ID.
Oder verwende die AWS Cloud Map-Konsole, um den Namespace zu löschen.
Überprüfung des Status der Clusteranhänge
Wenn du deinen Cluster mit einem Kapazitätsanbieter für die Amazon EC2 Auto-Scaling-Gruppe verknüpft hast, überprüfe den Status der Clusteranhänge. Die Clusteranhänge müssen den Status UPDATE_COMPLETE oder UPDATE_FAILED aufweisen, bevor du den Cluster löschst. Wenn du einen Cluster mit Clusteranhängen löschst, deren Status UPDATE_IN_PROGRESS lautet, erscheint die Fehlermeldung UpdateInProgressException.
Führe den folgenden Befehl describe-clusters aus, um deine Clusteranhänge zu überprüfen:
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].attachmentsStatus
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen.
Wenn die Clusteranhänge den Status UPDATE_IN_PROGRESS aufweisen, warte, bis der Status automatisch aufgelöst wird, bevor du den Cluster löschst.
(Optional) Löschen der mit dem Cluster verknüpften Kapazitätsanbieter
Führe den folgenden Befehl describe-clusters aus, um die Kapazitätsanbieter anzuzeigen, die mit dem Cluster verknüpft sind:
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].capacityProviders[] --output text
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen.
Führe den folgenden Befehl put-cluster-capacity-providers aus, um den Kapazitätsanbieter vom Cluster zu trennen:
aws ecs put-cluster-capacity-providers --cluster CLUSTER_NAME --capacity-providers [] --default-capacity-provider-strategy []
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen.
Führe den folgenden Befehl delete-capacity-provider aus, um den Kapazitätsanbieter zu löschen:
aws ecs delete-capacity-provider --capacity-provider CAPACITY_PROVIDER_NAME
Hinweis: Ersetze CAPACITY_PROVIDER_NAME durch den Namen des Kapazitätsanbieters.
Oder verwende die Amazon-ECS-Konsole, um den Kapazitätsanbieter zu löschen.
Cluster löschen
Führe den folgenden Befehl delete-cluster aus, um den Cluster zu löschen:
aws ecs delete-cluster --cluster CLUSTER_NAME
Hinweis: Ersetze CLUSTER_NAME durch den Clusternamen.
Oder verwende die Amazon-ECS-Konsole, um den Cluster zu löschen.
Ähnliche Informationen
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 4 Jahren