設定 Amazon ECS Linux 容器執行個體以接收 Spot 執行個體通知 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon ECS Linux 容器執行個體以接收 Spot 執行個體通知

當 Spot 價格超過請求的最高價或容量不再可用時,Amazon EC2 會終止、停止或休眠您的 Spot 執行個體。Amazon EC2 會針對終止和停止動作提前兩分鐘發出 Spot 執行個體中斷通知。其不會針對休眠動作提前兩分鐘發出通知。如果在執行個體上開啟 Amazon ECS Spot 執行個體耗盡,Amazon ECS 會收到 Spot 執行個體中斷通知,並將執行個體置於 DRAINING 狀態。

重要

當透過 Auto Scaling 容量重新平衡移除執行個體時,Amazon ECS 不會收到 Amazon EC2 發出的通知。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 容量重新平衡

將容器執行個體設定為 DRAINING 時,Amazon ECS 會避免在容器執行個體中放置新的任務排程。PENDING 狀態下即將耗盡的容器執行個體服務任務會立即停止。如果叢集有可用的容器執行個體,則會在這些容器執行個體上啟動替代服務任務。

Spot 執行個體耗盡預設為關閉。

您可以在啟動執行個體時開啟 Spot 執行個體耗盡。將下列指令碼新增至使用者資料欄位。將 MyCluster 取代為要註冊容器執行個體的叢集名稱。

#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_ENABLE_SPOT_INSTANCE_DRAINING=true EOF

如需詳細資訊,請參閱啟動 Amazon ECS Linux 容器執行個體

針對現有的容器執行個體開啟 Spot 執行個體耗盡
  1. 透過 SSH 連接到 Spot 執行個體。

  2. 編輯 /etc/ecs/ecs.config 檔案並新增以下內容:

    ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
  3. 重新啟動 ecs 服務。

    • 對於 Amazon ECS 最佳化 Amazon Linux 2 AMI:

      sudo systemctl restart ecs
  4. (選用) 您可以驗證代理已在執行中,並透過查詢代理自我檢查 API 操作,查看您新的容器執行個體的一些資訊。如需詳細資訊,請參閱Amazon ECS 容器自我檢查

    curl http://localhost:51678/v1/metadata