本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 服務事件消息
您會在 Amazon ECS 主控台中看到以下服務事件訊息範例:
服務 (service-name
) 已達到穩定狀態。
服務排程器會在service (
服務狀況良好且處於所需的工作數目時傳送服務事件,進而達到穩定狀態。service-name
) has
reached a steady state.
服務排程器會定期報告狀態,因此您可能會多次收到此訊息。
服務 (service-name
) 無法放置任務,因為沒有容器執行個體符合其所有要求。
當服務排程器找不到可用資源來新增其他工作時,會傳送此事件訊息。可能的原因如下:
- 您的叢集中找不到任何容器執行個體
-
如果您嘗試在其中執行工作的叢集中沒有註冊容器執行個體,就會收到此錯誤。您應該將容器執行個體新增到您的叢集。如需詳細資訊,請參閱 啟動 Amazon ECS Linux 容器執行個體。
- 連接埠不足
-
如果您的任務使用固定的主機連接埠映射 (例如,您的任務為 Web 伺服器使用主機的連接埠 80),則您每項任務至少必須擁有一個容器執行個體,因為一個容器一次只能使用單一個主機連接埠。您應該新增容器執行個體到您的叢集,或降低所需任務數量。
- 註冊的連接埠太多
-
任務放置最接近的相符容器執行個體不得超過每個容器執行個體 100 個主機連接埠允許的最大保留連接埠限制。使用動態主機連接埠映射可以修復此問題。
- 連接埠已在使用中
-
此工作的作業定義會在其連接埠對應中使用相同的連接埠,作為已在所選容器執行個體上執行的工作。服務事件訊息會將具有所選容器執行個體 ID 作為以下訊息的一部分。
The closest matching container-instance is already using a port required by your task.
- 記憶體不足
-
如果您的任務定義指定 1000 MiB 的記憶體,而您叢集中的容器執行個體每個都有 1024 MiB 的記憶體,則您每個容器執行個體只能執行一個此任務複本。您可以在任務定義中試驗使用較少的記憶體,以便您每個容器執行個體可以啟動多項任務,或在您的叢集中啟動更多的容器執行個體。
注意
若您嘗試盡可能為特定執行個體類型的任務提供最多的記憶體,以將資源使用率最大化,請參閱「保留 Amazon ECS Linux 容器執行個體記憶體 」。
- CPU 不足
-
容器執行個體的每個 CPU 核心都有 1,024 CPU 單位。如果您的任務定義指定 1,000 CPU 單位,而您叢集中的容器執行個體每個都有 1,024 CPU 單位,您每個容器執行個體只能執行一個此任務複本。您可以在任務定義中試驗使用較少的 CPU 單位,以便您每個容器執行個體可以啟動多項任務,或在您的叢集中啟動更多的容器執行個體。
- 可用的 ENI 連接點不足
-
使用
awsvpc
網路模式的每項任務都會收到自己的彈性網路介面 (ENI),連接到裝載它的容器執行個體。Amazon EC2 執行個體有可以連接至其的 ENI 數目限制,而且有 ENI 容量可用的叢集中沒有容器執行個體。個別容器執行個體的 ENI 限制取決於以下條件:
-
如果您尚未選擇使用
awsvpcTrunking
帳戶設定,則每個容器執行個體的 ENI 限制取決於執行個體類型。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址。 -
如果您已選擇加入
awsvpcTrunking
帳戶設定,但在選擇加入後並未使用支援的執行個體類型啟動新的容器執行個體,則每個容器執行個體的 ENI 限制仍為預設值。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址。 -
如果您已選擇使用
awsvpcTrunking
帳戶設定,且已在選擇使用後,使用支援的執行個體類型啟動新的容器執行個體,則會有額外的 ENI 可用。如需詳細資訊,請參閱 支援增加 Amazon ECS 容器網路界面的執行個體。
如需選擇使用的
awsvpcTrunking
帳戶設定詳細資訊,請參閱 增加 Amazon ECS Linux 容器實例網絡界面。您可以將容器執行個體新增到您的叢集,以提供更多可用的網路轉接器。
-
- 容器執行個體遺漏必要的屬性
-
有些任務定義參數需要在容器執行個體上安裝特定的 Docker 遠端 API 版本。其他,例如記錄驅動程式選項,需要容器執行個體向
ECS_AVAILABLE_LOGGING_DRIVERS
代理組態變數註冊這些日誌驅動程式。如果您的工作定義包含需要特定容器執行個體屬性的參數,而且您沒有任何可用的容器執行個體可以滿足此需求,則無法放置工作。造成此錯誤的常見原因是,如果您的服務使用使用
awsvpc
網路模式和 EC2 啟動類型的工作。您指定的叢集沒有在建立服務awsvpcConfiguration
時所指定的相同子網路中註冊容器執行個體。有關特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊,請參閱「Amazon ECS 任務定義參數」和「Amazon ECS 容器代理程式組態」。
服務 (service-name
) 無法放置任務,因為沒有容器執行個體符合其所有要求。最接近的相符容器執行個體 (容器執行個體 id
) 可用 CPU 單位不足。
用於任務放置的最接近的匹配容器實例不包含足夠的 CPU 單元,無法滿足任務定義中的需求。檢閱任務定義之任務大小和容器定義參數的 CPU 需求。
服務 (service-name
) 無法放置任務,因為沒有容器執行個體符合其所有要求。最接近的相符容器執行個體 container-instance-id
發生「代理」錯誤。
適合放置任務之最接近相符容器執行個體中的 Amazon ECS 容器代理中斷連線。如果您可以使用 SSH 連線到容器執行個體,您即可檢查代理日誌,如需詳細資訊,請參閱「Amazon ECS 容器代理程式日誌組態參數」。您也應該確認代理是否在執行個體上執行。如果您使用的是 Amazon ECS 最佳化 AMI,您可以使用下列命令嘗試停用並重新啟動代理。
-
對於 Amazon ECS 優化的 Amazon Linux 2 AMI 和 Amazon ECS 優化 Amazon Linux 2023 AMI
sudo systemctl restart ecs
-
對於 Amazon ECS 最佳化 Amazon Linux AMI
sudo stop ecs && sudo start ecs
服務 (服務名稱
) (執行個體執行個體 ID
) 在 (elb elb-name
) 中運作狀態不良,原因是執行個體至少連續執行狀態檢查次數失敗。) UnhealthyThreshold
此服務已在負載平衡器註冊,但負載平衡器的運作狀態檢查失敗。如需詳細資訊,請參閱 疑難排解 Amazon ECS 中的服務負載平衡器。
服務 (service-name
) 無法成功持續啟動任務。
此服務包含在連續嘗試後無法啟動的任務。此時,服務排程器開始逐漸增加重試之間的時間。您應該對任務無法啟動的原因進行故障診斷。如需詳細資訊,請參閱 Amazon ECS 服務節流邏輯。
服務更新之後,例如使用更新的任務定義,服務排程器就會恢復正常的行為。
服務 (service-name
) 操作正在受到調節。將稍後再試。
由於 API 調節限制,此服務無法啟動更多任務。一旦服務排程器能夠啟動更多任務,就會繼續執行。
若要請求提高 API 比率限制配額,請開啟 AWS Support Center
服務 (service-name
) 在部署期間因服務部署組態而無法停止或啟動任務。請更新 minimumHealthyPercent 或「最大百分比」值,然後再試一次。
由於部署組態,此服務無法在服務部署期間停止或啟動任務。部署組態包含minimumHealthyPercent
和maximumPercent
值,這些值是在建立服務時定義的。這些值也可以在現有服務上進行更新。
minimumHealthyPercent
表示在部署期間或容器執行個體耗盡時,應針對服務執行的工作數目下限。這是服務所需任務數量的百分比。此值會向上捨入。例如,如果健全狀況下限百分比為,50
且所需的工作計數為四,則排程器可以先停止兩個現有工作,然後再開始兩個新工作。同樣地,如果最小運作狀態良好的百分比為 75%,而所需的任務計數為 2,則排程器無法停止任何任務,因為產生的值也是 2。
maximumPercent
表示在部署期間或容器執行個體耗盡時,應針對服務執行的工作數目上限。這是服務所需任務數量的百分比。此值會向下捨去。例如,如果最大百分比為,200
且所需的工作計數為四,則排程器可以在停止四個現有工作之前啟動四個新工作。同樣地,如果最大百分比為 125
,且所需的任務計數為 3,則排程器無法停止任何任務,因為產生的值也是 3。
設定最小最小運作狀態良好的百分比或最大百分比時,您應確定排程器在觸發部署時,至少可以停止或啟動一項任務。
服務 (service-name
) 無法放置任務。原因:您已達到可以同時執行的任務數量限制
您可以請求提升導致錯誤的資源配額。如需詳細資訊,請參閱 Amazon ECS 服務配額。若要請求增加配額,請參閱《Service Quotas 使用者指南》中的請求提高配額。
服務 (service-name
) 無法放置任務。原因:內部錯誤。
下列為導致此錯誤的可能原因:
-
由於子網路位於不受支持的可用區域中,該服務無法開始任務。
如需支援的區域的 Fargate 和可用區域的相關資訊,請參閱 支援 AWS Fargate 上 Amazon ECS 的區域。
如需如何檢視子網路可用區域的相關資訊,請參閱《Amazon VPC 使用者指南》中的檢視您的子網路。
-
您正在嘗試在 Fargate 點上運行使用 ARM 架構的任務定義。
服務 (service-name
) 無法放置任務。原因:請求的 CPU 組態超過您的限制。
您可以請求提升導致錯誤的資源配額。如需詳細資訊,請參閱 Amazon ECS 服務配額。若要請求增加配額,請參閱《Service Quotas 使用者指南》中的請求提高配額。
服務 (service-name
) 無法放置任務。原因:請求的 MEMORY 組態超過您的限制。
您可以請求提升導致錯誤的資源配額。如需詳細資訊,請參閱 Amazon ECS 服務配額。若要請求增加配額,請參閱《Service Quotas 使用者指南》中的請求提高配額。
服務 (service-name
) 無法放置任務。原因:您已達到可以同時執行的 vCPU 數量限制
AWS Fargate 正在從以工作計數為基礎的配額轉換為以 vCPU 為基礎的配額。
對於 Fargate vCPU 型配額,您可請求提高配額。如需詳細資訊,請參閱 Amazon ECS 服務配額。若要請求提高 Fargate 配額,請參閱《Service Quotas 使用者指南》中的請求提高配額。
服務 (service-name
) 無法達到穩定狀態,因為任務集 (taskSet-ID
) 無法縮減。原因:受保護任務的數量超過所需任務的計數。
服務具有的受保護任務數超過所需任務計數。您可以執行下列任一動作:
-
等待目前任務的保護到期,然後終止這些任務。
-
判斷哪些工作可以停止,並使用
UpdateTaskProtection
API,並將選protectionEnabled
項設定false
為取消設定這些工作的保護。 -
將服務的所需任務計數提高到超過受保護任務的數目。
服務 (service-name
) 無法達到穩定狀態。原因:在容量提供者中找不到容器執行個體。
當服務排程器找不到可用資源來新增其他工作時,會傳送此事件訊息。可能的原因如下:
- 沒有與叢集相關聯的容量提供者
-
用
describe-services
於確認您有與叢集相關聯的容量提供者您可以更新服務的容量提供者策略。確認容量提供者中有可用容量。在 EC2 啟動類型的情況下,請確定容器執行個體符合任務定義要求。
- 您的叢集中找不到任何容器執行個體
-
如果您嘗試在其中執行工作的叢集中沒有註冊容器執行個體,就會收到此錯誤。您應該將容器執行個體新增到您的叢集。如需詳細資訊,請參閱 啟動 Amazon ECS Linux 容器執行個體。
- 連接埠不足
-
如果您的工作使用固定主機連接埠對應 (例如,您的工作使用 Web 伺服器主機上的連接埠 80),則每個工作必須至少有一個容器執行個體。一次只能有一個容器使用單一主機連接埠。您應該新增容器執行個體到您的叢集,或降低所需任務數量。
- 註冊的連接埠太多
-
任務放置最接近的相符容器執行個體不得超過每個容器執行個體 100 個主機連接埠允許的最大保留連接埠限制。使用動態主機連接埠映射可以修復此問題。
- 連接埠已在使用中
-
此工作的作業定義會在其連接埠對應中使用相同的連接埠,作為已在所選容器執行個體上執行的工作。服務事件訊息會將具有所選容器執行個體 ID 作為以下訊息的一部分。
The closest matching container-instance is already using a port required by your task.
- 記憶體不足
-
如果您的任務定義指定 1000 MiB 的記憶體,而您叢集中的容器執行個體每個都有 1024 MiB 的記憶體,則您每個容器執行個體只能執行一個此任務複本。您可以在任務定義中試驗使用較少的記憶體,以便您每個容器執行個體可以啟動多項任務,或在您的叢集中啟動更多的容器執行個體。
注意
若您嘗試盡可能為特定執行個體類型的任務提供最多的記憶體,以將資源使用率最大化,請參閱「保留 Amazon ECS Linux 容器執行個體記憶體 」。
- 可用的 ENI 連接點不足
-
使用
awsvpc
網路模式的每項任務都會收到自己的彈性網路介面 (ENI),連接到裝載它的容器執行個體。Amazon EC2 執行個體對可連接的 ENI 數量有限制,而且叢集中沒有可用 ENI 容量的容器執行個體。個別容器執行個體的 ENI 限制取決於以下條件:
-
如果您尚未選擇使用
awsvpcTrunking
帳戶設定,則每個容器執行個體的 ENI 限制取決於執行個體類型。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址。 -
如果您已選擇加入
awsvpcTrunking
帳戶設定,但在選擇加入後並未使用支援的執行個體類型啟動新的容器執行個體,則每個容器執行個體的 ENI 限制仍為預設值。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址。 -
如果您已選擇使用
awsvpcTrunking
帳戶設定,且已在選擇使用後,使用支援的執行個體類型啟動新的容器執行個體,則會有額外的 ENI 可用。如需詳細資訊,請參閱 支援增加 Amazon ECS 容器網路界面的執行個體。
如需選擇使用的
awsvpcTrunking
帳戶設定詳細資訊,請參閱 增加 Amazon ECS Linux 容器實例網絡界面。您可以將容器執行個體新增到您的叢集,以提供更多可用的網路轉接器。
-
- 容器執行個體遺漏必要的屬性
-
有些任務定義參數需要在容器執行個體上安裝特定的 Docker 遠端 API 版本。其他,例如記錄驅動程式選項,需要容器執行個體向
ECS_AVAILABLE_LOGGING_DRIVERS
代理組態變數註冊這些日誌驅動程式。如果您的工作定義包含需要特定容器執行個體屬性的參數,而且您沒有任何可用的容器執行個體可以滿足此需求,則無法放置工作。造成此錯誤的常見原因是,如果您的服務正在使用使用
awsvpc
網路模式和 EC2 啟動類型的工作,而您指定的叢集並未在建立服務awsvpcConfiguration
時指定的相同子網路中向其註冊容器執行個體。有關特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊,請參閱「Amazon ECS 任務定義參數」和「Amazon ECS 容器代理程式組態」。
服務 (service-name
) 無法放置任務。原因:目前無法使用容量。請稍後再試一次,或在不同的可用區域中嘗試。
目前沒有可用的容量可用來執行您的服務。
您可以執行下列任一動作:
-
等到 Fargate 容量或 EC2 容器執行個體可以使用。
-
重新啟動服務並指定其他子網路。
服務 (服務名稱
) 部署失敗:工作啟動失敗。
服務中的工作無法啟動。
如需有關如何偵錯已停止之工作的資訊。請參閱Amazon ECS 停止任務錯誤消息。
服務 (服務名稱
) 逾時等待 Amazon ECS 代理程式啟動。請檢查 /var/log/ecs/ecs-agent.log 中的日誌「。
適合放置任務之最接近相符容器執行個體中的 Amazon ECS 容器代理中斷連線。如果您可以使用 SSH 連線至容器執行個體,則可以檢查代理程式記錄。如需詳細資訊,請參閱 Amazon ECS 容器代理程式日誌組態參數。您也應該確認代理是否在執行個體上執行。如果您使用的是 Amazon ECS 最佳化 AMI,您可以使用下列命令嘗試停用並重新啟動代理。
-
對於 Amazon ECS 最佳化 Amazon Linux 2 AMI
sudo systemctl restart ecs
-
對於 Amazon ECS 最佳化 Amazon Linux AMI
sudo stop ecs && sudo start ecs
服務(服務名稱
)任務集(任務集 ID
)在 targetGroup(目標群組-ARN)中狀況不良),原因是。
TARGET GROUP IS NOT FOUND
服務名稱
)任務集(任務集 ID
)在 targetGroup(目標群組-ARN)中狀況不良),原因是。為服務設定的工作未通過健全狀況檢查,因為找不到目標群組。您應該刪除並重新建立服務。除非已刪除對應的 Amazon ECS 服務,否則請勿刪除任何 Elastic Load Balancing 目標群組。
服務(服務名稱
)任務集(任務集 ID
)在 targetGroup(目標群組-ARN)中狀況不良),原因是。
TARGET IS NOT FOUND
服務名稱
)任務集(任務集 ID
)在 targetGroup(目標群組-ARN)中狀況不良),原因是。為服務設定的工作未通過健康狀態檢查,因為找不到目標。