注销 Amazon ECS 外部实例 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

注销 Amazon ECS 外部实例

我们建议您在完成使用实例后,从 Amazon ECS 和 Amazon Systems Manager 注销该实例。注销后,容器实例再也不能接受新任务。

如果注销时容器实例上有正在运行的任务,这些任务将保持运行,直到通过其他方式停止为止。但是,这些任务不再由 Amazon ECS 监控或说明。如果外部实例上的这些任务是 Amazon ECS 服务的一部分,那么服务调度器将在不同的实例上启动该任务的另一个副本(如有可能)。

注销实例之后,请清理实例上剩余的 Amazon 资源。然后,您可以将其注册到新的集群。

过程

Amazon Web Services Management Console
  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 从导航栏中,选择您的外部实例将注册的区域。

  3. 在导航窗格中,选择 集群 并选择托管外部实例的集群。

  4. Cluster : name(集群:名称)页面上,选择 Infrastructure(基础设施)选项卡。

  5. Container instances(容器实例)下,选择要注销的外部实例 ID。您将重新定向到容器实例详细信息页面。

  6. Container Instance : id 页面上,选择 Deregister

  7. 查看注销消息。选择注销 Amazon Systems Manager 以同时将外部实例注销为 Systems Manager 托管实例。选择注销

    注意

    您可以在 Systems Manager 控制台中将外部实例注销为 Systems Manager 托管实例。有关说明,请参阅 Amazon Systems Manager 用户指南中的注销托管实例

  8. 注销实例之后,清理本地服务器或 VM 上的 Amazon 资源。

    操作系统 步骤

    Linux

    1. 停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。

      sudo systemctl stop ecs amazon-ssm-agent
    2. 删除 Amazon ECS 和 Systems Manager 程序包。

      对于 CentOS 7、CentOS 8 和 RHEL 7

      sudo yum remove -y amazon-ecs-init amazon-ssm-agent

      对于 SUSE Linux Enterprise Server 15

      sudo zypper remove -y amazon-ecs-init amazon-ssm-agent

      对于 Ubuntu 和 Debian

      sudo apt remove -y amazon-ecs-init amazon-ssm-agent
    3. 移除剩余的目录。

      sudo rm -rf /var/lib/ecs /etc/ecs /var/lib/amazon/ssm /var/log/ecs /var/log/amazon/ssm
    Windows
    1. 停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。

      Stop-Service AmazonECS
      Stop-Service AmazonSSMAgent
    2. 删除 Amazon ECS 程序包。

      .\ecs-anywhere-install.ps1 -Uninstall
Amazon CLI
  1. 您需要实例 ID 和容器实例 ARN,才能注销容器实例。如果没有这些值,则请运行以下命令

    请运行以下命令以获取实例 ID。

    您可以使用实例 ID(instanceID)来获取容器实例 ARN(containerInstanceARN)。

    instanceId=$(aws ssm describe-instance-information --region "{{ region }}" | jq ".InstanceInformationList[] |select(.IPAddress==\"{{ IPv4 Address }}\") | .InstanceId" | tr -d'"'

    运行以下命令。

    您可以在命令中使用 containerInstanceArn 作为参数来注销实例(deregister-container-instance)。

    instances=$(aws ecs list-container-instances --cluster "{{ cluster }}" --region "{{ region }}" | jq -c '.containerInstanceArns') containerInstanceArn=$(aws ecs describe-container-instances --cluster "{{ cluster }}" --region "{{ region }}" --container-instances $instances | jq ".containerInstances[] | select(.ec2InstanceId==\"{{ instanceId }}\") | .containerInstanceArn" | tr -d '"')
  2. 运行以下命令以耗尽实例。

    aws ecs update-container-instances-state --cluster "{{ cluster }}" --region "{{ region }}" --container-instances "{{ containerInstanceArn }}" --status DRAINING
  3. 容器实例耗尽后,运行以下命令注销该实例。

    aws ecs deregister-container-instance --cluster "{{ cluster }}" --region "{{ region }}" --container-instance "{{ containerInstanceArn }}"
  4. 使用以下命令从 SSM 中移除容器实例。

    aws ssm deregister-managed-instance --region "{{ region }}" --instance-id "{{ instanceId }}"
  5. 注销实例之后,清理本地服务器或 VM 上的 Amazon 资源。

    操作系统 步骤

    Linux

    1. 停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。

      sudo systemctl stop ecs amazon-ssm-agent
    2. 删除 Amazon ECS 和 Systems Manager 程序包。

      sudo (yum/apt/zypper) remove amazon-ecs-init amazon-ssm-agent
    3. 移除剩余的目录。

      sudo rm -rf /var/lib/ecs /etc/ecs /var/lib/amazon/ssm /var/log/ecs /var/log/amazon/ssm
    Windows
    1. 停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。

      Stop-Service AmazonECS
      Stop-Service AmazonSSMAgent
    2. 删除 Amazon ECS 程序包。

      .\ecs-anywhere-install.ps1 -Uninstall