配置 Amazon ECS Linux 容器实例以接收竞价型实例通知
当 Spot 价格超过您请求的最高价格或容量不再可用时,Amazon EC2会终止、停止或休眠您的 Spot 实例。Amazon EC2 为终止和停止操作提供两分钟的竞价型实例中断通知。它没有提供休眠操作的两分钟通知。如果在实例上开启了 Amazon ECS 竞价型实例耗尽功能,则 Amazon ECS 会收到竞价型实例中断通知,并将实例置于 DRAINING
状态。
重要
当 Auto Scaling Capacity Rebalancing 移除实例时,Amazon ECS 不会收到来自 Amazon EC2 的通知。有关更多信息,请参阅 Amazon EC2 Auto Scaling 容器重新平衡。
当某个容器实例设置为 DRAINING
时,Amazon ECS 将阻止安排放置在该容器实例上的新任务。连接即将耗尽的容器实例上处于 PENDING
状态的服务任务将立即停止。如果集群中有可用的容器实例,则在这些容器实例上启动替换服务任务。
竞价型实例耗尽功能在默认情况下处于关闭状态。
您可以在启动实例时开启竞价型实例耗尽功能。将以下脚本添加到用户数据字段。将 MyCluster
替换为要向其注册容器实例的集群名称。
#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=
MyCluster
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true EOF
有关更多信息,请参阅 启动 Amazon ECS Linux 容器实例。
要为现有容器实例开启竞价型实例耗尽
-
通过 SSH 连接到 Spot 实例。
-
编辑
/etc/ecs/ecs.config
文件并添加以下内容:ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
-
重新启动
ecs
服务。-
对于经 Amazon ECS 优化的 Amazon Linux 2 AMI:
sudo systemctl restart ecs
-
-
(可选) 您可以通过查询代理自检 API 操作,验证代理是否正在运行并查看有关新容器实例的一些信息。有关更多信息,请参阅 Amazon ECS 容器自检。
curl http://localhost:51678/v1/metadata