AWS ECS:無法放置任務

AWS ECS:無法放置任務

我正在嘗試設定具有自動縮放功能的 AWS 服務。我創建了一個帶有應用程式負載平衡器的集群,並使用應該在連接埠 8080 上打開以供使用的 docker 映像建立了一個任務。我基於該任務創建了一項服務,將最小和所需實例數設為 1,最大實例數設為 10,並創建了擴大和縮小規模的規則。但是,沒有建立新實例,我定期在事件清單中得到的只是:

服務 microrecieverservice 無法放置任務,因為沒有容器實例滿足其所有要求。最接近的匹配容器實例 97d97ce9-967d-49ad-83ad-f4f904aae1f6 已在使用您的任務所需的連接埠。有關詳細信息,請參閱故障排除部分。

我在 中找不到任何相關內容故障排除部分。我已經能夠手動將另一個實例新增到叢集中,但給定的事件沒有變化。我可以 ssh 進入這個實例,並且有兩個 docker 映像:一個是 amazon-ecs-agent:latest,另一個是我的任務定義。此時,我嘗試向伺服器發送 REST 請求以查看它是否會通過,但連接被拒絕。大約在同一時間,docker 映像重新啟動。

該容器沒有運行任何其他會使用連接埠 8080 的程序,當我netstat -lntp使用連接埠 8080 執行該進程時,該進程是我的 docker 映像的進程。

答案1

您的任務很可能使用連接埠 8080 作為靜態連接埠。

由於您的叢集中只有一個實例,因此您無法在仍遵守放置策略的同時更新服務,這很可能需要先啟動新任務,等待執行狀況檢查成功,而不是停止舊任務。

由於唯一一個實例在連接埠 8080 上執行任務,因此沒有可啟動該任務的實例。

使用ECS動態連接埠映射,或在叢集中啟動更多實例。

相關內容