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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

注销外部实例

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

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

要将外部实例注册到新集群,在从 Amazon ECS 和 Systems Manager 注销外部实例后,您可以清理该实例上的剩余 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. 取消注册实例后,清理本地服务器或虚拟机上的 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. 取消注册实例后,清理本地服务器或虚拟机上的 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