2

我正在使用微服務體系結構的API。我通過Elastic Beanstalk部署到ECS。每個微服務都是一項長期運行的任務(在ECS上相當於一個容器)。我剛剛通過了10項任務,我不能再部署。AWS ECS:我如何通過我的微服務體系結構API解決「太多容器」問題?

ERROR: Service:AmazonECS, Code:ClientException, Message:Too many containers., Class:com.amazonaws.services.ecs.model.ClientException

According to the documentation,10個任務定義容器是對ECS的硬性限制。

有什麼辦法可以解決這個問題嗎?我如何繼續在ECS上的API上添加服務?這種限制表明我沒有按照預期使用該服務。在AWS上將每個微服務集合部署爲獨立的Docker容器的最佳方式是什麼?

編輯:我對容器和任務之間的關係的理解是完全錯誤的。看起來整個API是一個單獨的任務,我的Dockerrun.aws.json中的每個容器都是API任務中的一個容器。所以,限制是單個任務內容器的限制。

+0

您必須通過聯繫AWS支持 – error2007s

+1

@ error2007s來增加服務限制。此特殊限制在「亞馬遜ECS的其他限制_cannot_可以更改」 – raddevon

+0

您可以重新制作Lambda嗎?那裏沒有這樣的限制;您僅限於調用該函數的子網上可用的ip數量。 –

回答

-2

由於它不可更改,這意味着您需要一個新的任務定義。

Task definition max containers表示每個任務定義可以有10個。如果你需要更多的容器,只需克隆定義即可。

帶着一絲鹽,但是如果你在每個實例的基礎上設置你的任務,你是不是可以用創建AMI來工作,或者可能讓多個任務放在同一個容器實例上?

+0

如何配置Elastic Beanstalk以創建單獨的任務?它似乎把所有的容器都放到一個單獨的任務中,我找不到一個記錄的方式來配置它來分離它們。 – raddevon

+0

你標記了amazon-ecs,你不能用豆莖做到這一點。我建議重新標記你的問題。 –

0

在ecs API中,在相同任務中定義的容器保證這些容器將在一個實例上部署。如果這是您想要的部署行爲,請在一個「任務」中定義容器。

如果要跨ecs集羣部署容器,則應該只使用一個容器定義不同的任務,以便可以在集羣上平衡地部署所有容器。

相關問題