對 Amazon ECS 受管執行個體進行疑難排解 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對 Amazon ECS 受管執行個體進行疑難排解

使用 Amazon ECS 受管執行個體啟動任務時,Amazon ECS 會先嘗試將任務置放在現有容量上,並為無法置放的任務請求額外容量。如果執行個體佈建失敗,Amazon EC2 請求 ID 會包含在任務失敗訊息中。您可透過此請求 ID 在 CloudTrail 中查詢失敗請求的詳細資訊,進一步進行疑難排解。

注意

如果您選擇套用最低權限許可,並為執行個體描述檔指定自己的許可,而不是使用 AmazonECSInstanceRolePolicyForManagedInstances受管政策,您可以新增下列許可,以協助疑難排解 Amazon ECS 受管執行個體的任務相關問題:

  • ecs:StartTelemetrySession

  • ecs:PutSystemLogEvents

任務定義與 Amazon ECS 受管執行個體不相容

常見原因

當任務定義包含 Amazon ECS 受管執行個體不支援的參數或組態時,就會發生此錯誤。常見的不相容問題包括不支援的網路模式、任務角色或資源需求。

Resolution

  1. 確認任務定義使用設定為 MANAGED_INSTANCESrequiresCompatibilities

  2. 確保任務定義使用 awsvpc 網路模式。

  3. 檢查 CPU 與記憶體值是否在 Amazon ECS 受管執行個體的支援範圍內。

  4. 檢閱詳細錯誤訊息,了解具體的不相容問題詳情。

不與叢集相關聯的容量提供者

常見原因

當容量提供者策略中指定的容量提供者未與叢集建立關聯或不存在時,就會發生此錯誤。

Resolution

  1. 確認容量提供者存在於帳戶與區域中。

  2. 透過 Amazon ECS 主控台或 CLI 將容量提供者與叢集建立關聯。

  3. 確保容量提供者在使用之前處於 ACTIVE 狀態。

基礎結構角色許可錯誤

常見原因

當 Amazon ECS 基礎結構角色缺乏代表您執行 Amazon EC2 操作的必要許可,或該角色因信任關係問題而無法擔任時,就會發生此錯誤。

Resolution

  1. 確認基礎結構角色與 Amazon ECS 具有適當的信任關係。

  2. 確保角色具有必要的 Amazon EC2 許可,包括 ec2:RunInstancesec2:DescribeInstancesiam:PassRole

  3. 如需特定許可的詳細資訊,請檢查 CloudTrail 中的編碼授權失敗訊息。

  4. 更新角色政策,納入錯誤訊息中識別到的缺少許可。

VcpuLimitExceeded 錯誤

常見原因

當您已達到目前區域中執行個體類型系列的 vCPU 服務配額時,就會發生此錯誤。在容量可用之前,Amazon ECS 受管執行個體無法啟動額外的執行個體。

Resolution

  1. 透過 AWS Support Center 請求增加受影響執行個體類型系列的服務配額。

  2. 建議使用屬於不同 vCPU 配額類別的不同執行個體類型。

  3. 終止閒置的 Amazon EC2 執行個體,釋放 vCPU 容量。

  4. 檢閱容量提供者組態,使用 vCPU 需求較低的執行個體類型。

InsufficientCapacity 與相關容量錯誤

常見原因

當 AWS 沒有足夠的容量來滿足您的執行個體請求時,就會發生這些錯誤。這可能包括請求的可用區域中執行個體容量、位址容量或磁碟區容量不足。

Resolution

  1. 在容量提供者中設定多個子網路,藉此嘗試在不同可用區域中啟動執行個體。

  2. 建議使用可能具有更多可用容量的不同執行個體類型。

  3. 當容量可用性經常變更時,請等待並重試操作。

  4. 對於持續性容量需求,建議採用預留執行個體或 Savings Plans。

UnauthorizedOperation 錯誤

常見原因

當 Amazon ECS 服務沒有執行 Amazon EC2 操作或傳遞 IAM 角色的必要許可時,就會發生此錯誤。常見案例包括缺少執行個體設定檔的 ec2:RunInstances 許可或 iam:PassRole 許可。

Resolution

  1. 確認 Amazon ECS 基礎結構角色具有啟動 Amazon EC2 執行個體的必要許可。

  2. 確保基礎結構角色具有 Amazon ECS 受管執行個體使用的執行個體設定檔 iam:PassRole 許可。

  3. 如需特定許可的詳細資訊,請檢查 CloudTrail 中的編碼授權失敗訊息。

  4. 更新角色政策,納入錯誤訊息中識別到的缺少許可。

任務等待容量逾時

常見原因

當執行個體啟動並註冊至叢集所需的時間超過預期時,就會發生此錯誤。這可能是由 Amazon EC2 容量限制、執行個體啟動失敗或網路連線問題所致。

Resolution

  1. 檢查所在區域中 Amazon EC2 服務運作狀態是否有任何持續的問題。

  2. 確認子網路有足夠的 IP 位址可用。

  3. 確保安全群組允許 Amazon ECS 代理程式通訊所需的流量。

  4. 建議使用多個可用區域來改善容量可用性。

  5. 重試任務啟動操作,因為容量限制通常是暫時的。

網路組態錯誤

常見原因

當任務的網路需求與容量提供者的網路組態不相符,例如 VPC 不相符或缺少網路組態時,就會發生這些錯誤。

Resolution

  1. 確認容量提供者已使用正確的 VPC 與子網路設定。

  2. 確保安全群組與子網路屬於相同的 VPC。

  3. 檢查任務定義的網路組態是否與容量提供者相容。

  4. 使用正確的網路設定更新容量提供者組態。

由於執行個體卡住,無法刪除容量提供者

常見原因

當 Amazon ECS 受管執行個體卡在 ACTIVEDRAINING 狀態,但執行個體上沒有執行中的任務時,就會發生這些錯誤。

Resolution

若要允許刪除容量提供者以繼續,您可以使用下列命令強制取消註冊停滯的執行個體。

aws ecs deregister-container-instance \ --cluster arn:aws:ecs:us-east-1:111122223333:cluster/MyCluster \ --container-instance arn:aws:ecs:us-east-1:111122223333:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ --force