Amazon Elastic Container Service (Amazon ECS) 未如預期將我的任務放置在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上。
解決方法
如果 Amazon ECS 無法放置您的任務,則該任務將保持處於佈建中狀態。您在服務事件訊息中收到以下錯誤:
「服務 ServiceName 無法放置任務,因為沒有容器執行個體符合其所有要求。」
若要解決此問題,請檢查服務事件訊息中是否有此錯誤。然後,根據錯誤原因完成疑難排解步驟。
在您的叢集中找不到任何容器執行個體
如果您沒有將 EC2 執行個體註冊到叢集,那麼您會收到錯誤訊息。檢查您設定的容量供應商或 Amazon EC2 Auto Scaling 群組是否存在擴充或執行個體啟動問題。
如果執行個體已啟動,請檢查它為何未連接到叢集。
最相符項目 (container-instance abcdexyz) 可用的 CPU/記憶體/GPU 單位不足
當可用的容器執行個體沒有您任務請求的 CPU、記憶體或 GPU 時,就會發生此問題。若要解決此問題,請執行下列動作:
若要進一步對 CPU 問題進行疑難排解,請參閱如何解決 Amazon ECS 中的「最相符 container-instance container-instance-id 可用 CPU 單位不足」錯誤?
最相符項目 (container-instance abcdexyz) 已經使用了您任務所需的連接埠
當容器執行個體已經使用所需連接埠時,就會發生此問題。您無法在同一個連接埠上執行多個任務。若要解決此問題,請在叢集中新增更多容器執行個體。最佳做法是自動擴展容器執行個體。為您的叢集建立容量供應商。或者,若要允許任務使用容器執行個體上的任何可用連接埠,請使用動態連接埠對應。
最佳配對 (container-instance abcdexyz) 缺少遺失任務所需的屬性
當您的容器執行個體缺少任務定義中定義的必要屬性時,就會發生此問題。若要檢查缺少的屬性,請執行 check-attributes Amazon ECS 命令行介面 (ECS CLI) 命令:
ecs-cli check-attributes --container-instances container-instance --cluster cluster-name --region region-code --task-def task-def-name
**注意:**將 container-instance 替換為您的容器執行個體名稱,將 cluster-name 替換為您的叢集名稱,將 region-code 替換為您的 AWS 區域,將 task-def-name 替換為您的任務定義。
上述命令的輸出顯示缺少必要屬性的資料表。如需如何解決缺失屬性問題的資訊,請參閱 GitHub 網站上的檢查缺失屬性和偵錯原因屬性錯誤。
最相符的項目(container-instance abcdexyz) 沒有連接代理程式
當 Amazon ECS 代理程式中斷連線時,就會發生此問題。若要解決此問題,請參閱下列文章:
最相符的項目 (container-instance abcdexyz) 遇到錯誤「不符合 MemberOf 放置限制。」
如果您使用放置限制將工作放置在特定執行個體,請確定容器執行個體支援所選的屬性或限制。
如需詳細資訊,請參閱如何對 Amazon ECS 任務放置限制的問題進行疑難排解?
相關資訊
Amazon ECS 疑難排解