Amazon-Ecs
如何找出任務實例被取消註冊的原因?
我們有一堆服務在 ECS 中執行。所有這些都設置為執行至少兩個實例。對於某些服務,我注意到其中一個實例會不定期地被註銷。在日誌中沒有錯誤,並且健康檢查永遠不會失敗。所以我想知道為什麼ECS決定取消註冊一個看似完美執行的ECS任務實例?有沒有辦法找出原因?
這將更容易決定需要做什麼來穩定它。
有幾種調試方法:
- 顯然,日誌有助於發現實例變得不健康的原因。如果您使用帶有執行狀況檢查的 ELB,您需要檢查訪問日誌以查看執行狀況檢查端點是否返回了錯誤響應。您說您在日誌中沒有看到任何內容,但我想我會為將來看到此答案的任何人提及這一點,以防對他們的情況有所幫助。
- 檢查頁面上的“事件”選項卡是否有實例死亡的服務 - 當註冊或取消註冊任務時,ECS 會將事件記錄到事件列表中。但是,您需要確保在事件發生後立即進行檢查,因為事件列表只會顯示最近的事件。
- 如果您在任務終止之前打開了任務的資訊頁面,則容器定義區域可能會在退出原因部分下列出資訊。與事件頁麵類似,取消註冊的任務最終會在一段時間後被刪除,因此有助於在任務被刪除後儘快檢查。
- 如果上述方法均無效,則可以嘗試創建 CloudWatch 儀表板。對位於服務前面的 ALB/ELB使用HTTPCode_ELB_5XX_Count 統計資訊- 通常這些是 504 表示超時(為 ELB 啟用 S3 日誌記錄肯定會告訴您),如果有任務,您可能會發現 5XX 響應率升高由於執行狀況檢查期間的超時而死亡,因此這可能會為您指明正確的方向 - 但是,請注意,此類事件肯定也會記錄到服務的事件列表中。