我有一個由實例類型A的容器實例組成的ECS集羣,可以說它的t2.small。該集羣由多臺運行多個服務的機器組成。現在,我即將有一個新的服務/任務(讓我們稱之爲「GreatRequirements」),這將需要比任何其他服務/任務更多的CPU /內存。我希望能夠引導1臺大型機器(讓我們稱之爲「LargeMachine」),其他任務永遠不會放在集羣上,以便集羣中的這臺機器始終可用於「GreatRequirements」服務。如何防止任務在某個容器實例上啓動
有沒有什麼辦法可以阻止所有其他服務/任務,而不是在該機器上安排的「GreatRequirements」,除此之外,對所有其他服務/任務都做出約束限制?實質上,我想阻止ECS表單將其他服務/任務放置在「LargeMachine」上,這樣我就不會因爲一堆小服務/任務阻止我的「GreatRequirements」服務啓動任務而無法找到具有足夠cpu /內存。
謝謝
但是,這不會阻止其它任務被定於「LargeMachine」運行,而我仍然可以結束了在這樣一個場景,該機器將不會有足夠的CPU /內存? –
從防止其他任務的解決方案: 你可以有一個約束e.g'屬性的所有其他人的任務:ecs.instance型== T2。這會阻止它們在大型機器上運行,或者您可以將您的羣集分爲2個羣集(一個用於普通任務,另一個用於GreatRequirements)。在新的集羣中,您將擁有大型機器並安排您的任務(GreatRequirements)在該機器上運行 – Gigapalmer
在這種情況下,我將不得不爲所有其他服務/任務設置約束,這是我想省略的。除了將所有實例的實例類型更改爲可以使用「GreatRequirements」處理該服務的類型外,我不認爲實際上有一個好的解決方案,並以某種方式檢測服務由於不足而無法調度任務CPU /內存,並基於此將其他實例擴展到羣集中。感謝Gigapalmer提供的幫助:-) –