注销 Amazon ECS 外部实例
我们建议您在完成使用实例后,从 Amazon ECS 和 AWS Systems Manager 注销该实例。注销后,容器实例再也不能接受新任务。
如果注销时容器实例上有正在运行的任务,这些任务将保持运行,直到通过其他方式停止为止。但是,这些任务不再由 Amazon ECS 监控或说明。如果外部实例上的这些任务是 Amazon ECS 服务的一部分,那么服务调度器将在不同的实例上启动该任务的另一个副本(如有可能)。
注销实例之后,请清理实例上剩余的 AWS 资源。然后,您可以将其注册到新的集群。
过程
- AWS Management Console
-
在 https://console.aws.amazon.com/ecs/v2
打开控制台。 -
从导航栏中,选择您的外部实例将注册的区域。
-
在导航窗格中,选择 集群 并选择托管外部实例的集群。
-
在 Cluster :
name
(集群:名称)页面上,选择 Infrastructure(基础设施)选项卡。 -
在 Container instances(容器实例)下,选择要注销的外部实例 ID。您将重新定向到容器实例详细信息页面。
-
在 Container Instance :
id
页面上,选择 Deregister。 -
查看注销消息。选择注销 AWS Systems Manager 以同时将外部实例注销为 Systems Manager 托管实例。选择注销。
注意
您可以在 Systems Manager 控制台中将外部实例注销为 Systems Manager 托管实例。有关说明,请参阅《AWS Systems Manager 用户指南》中的在混合和多云环境中取消注册托管式节点。
-
注销实例之后,清理本地服务器或 VM 上的 AWS 资源。
操作系统 步骤 Linux
-
停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。
sudo systemctl stop ecs amazon-ssm-agent
-
删除 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
-
移除剩余的目录。
sudo rm -rf /var/lib/ecs /etc/ecs /var/lib/amazon/ssm /var/log/ecs /var/log/amazon/ssm
Windows -
停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。
Stop-Service AmazonECS
Stop-Service AmazonSSMAgent
-
删除 Amazon ECS 程序包。
.\ecs-anywhere-install.ps1 -Uninstall
-
- AWS CLI
-
-
您需要实例 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 '"') -
运行以下命令以耗尽实例。
aws ecs update-container-instances-state --cluster "{{
cluster
}}" --region "{{region
}}" --container-instances "{{containerInstanceArn
}}" --status DRAINING -
容器实例耗尽后,运行以下命令注销该实例。
aws ecs deregister-container-instance --cluster "{{
cluster
}}" --region "{{region
}}" --container-instance "{{containerInstanceArn
}}" -
使用以下命令从 SSM 中移除容器实例。
aws ssm deregister-managed-instance --region "{{
region
}}" --instance-id "{{instanceId
}}" -
注销实例之后,清理本地服务器或 VM 上的 AWS 资源。
操作系统 步骤 Linux
-
停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。
sudo systemctl stop ecs amazon-ssm-agent
-
删除 Amazon ECS 和 Systems Manager 程序包。
sudo (yum/apt/zypper) remove amazon-ecs-init amazon-ssm-agent
-
移除剩余的目录。
sudo rm -rf /var/lib/ecs /etc/ecs /var/lib/amazon/ssm /var/log/ecs /var/log/amazon/ssm
Windows -
停止实例上的 Amazon ECS 容器代理和 SSM Agent 服务。
Stop-Service AmazonECS
Stop-Service AmazonSSMAgent
-
删除 Amazon ECS 程序包。
.\ecs-anywhere-install.ps1 -Uninstall
-
-