我們有一個運行容器的AutoScaling組(使用ECS)。當我們在ASG中添加或替換EC2實例時,他們沒有我們想要的泊塢窗圖像。因此,我們使用cloud-init在啓動時運行一些docker pull
命令來獲取映像。對於AWS ASG,如何爲新實例設置自定義就緒檢查?
但是,ASG認爲新實例已準備好並終止舊實例。但事實上,這個新實例還沒有準備好,直到所有的碼頭圖像被拉下來。
例如 假設我的ASG需要的計數是5,並且我必須使用cloud-init抽取5個容器。現在,我想要替換ASG中的所有EC2實例。
當新實例開始啓動時,ASG將終止舊實例。但由於docker pull
滯後,會有部署,當實際有效實例將是較小的超過3或2
我如何「標誌着一個實例,準備」 只有雲時,在一段時間-init完成?
注意:我認爲Cloudformation可以使用CFN-Bootstrap彌合這種溝通差距。但我沒有使用Cloudformation。
這按預期工作! Ansible工具在ASG上創建生命週期掛鉤。然後在用戶數據中,EC2實例執行耗時的docker-pull命令,然後向ASG掛鉤發送一個continue信號。 ASG縮放/滾動繼續! –