使用 AWS re:Post 即表示您同意 AWS re:Post 使用條款

如何針對為 Amazon ECS 叢集在我嘗試設定新容量供應商或更新現有容量供應商時發生的問題進行疑難排解?

2 分的閱讀內容
0

我無法為 Amazon Elastic Container Service (Amazon ECS) 叢集設定新的容量供應商或更新現有的容量供應商。

解決方法

當您為 ECS 叢集設定新的容量供應商或更新現有容量供應商時,會出現以下常見問題:

您使用 AWS CLI 建立 AWS Auto Scaling 群組容量供應者且您收到錯誤

當您使用 AWS CLI 建立容量供應商時,請檢閱 AWS CloudTrail 事件以檢查 CreateCapacityProvider API。以下是常見的 CapacityProvider API 錯誤:

  • ClientException: 這些錯誤可能是由用戶端動作所造成的。用戶端動作代表 AWS Identity and Access Management (AWS IAM) 使用者使用動作或資源。但是,用戶端動作沒有使用該動作或資源所需的權限。此錯誤還能指明識別碼無效。
  • UpdateInProgressException: 收到此錯誤的原因是您指定的容器執行個體上目前已有進行中的 ECS 容器代理程式更新。如果容器代理程式在過渡階段 (例如 PENDING 或 STAGING) 中斷連線,則更新可能會卡在該狀態。不過,當代理程式重新連線時,更新就會從之前停止的位置回復。

如需相關資訊,請參閱錯誤

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

您收到錯誤: 「指定的容量供應商已存在。若要變更現有容量供應商的組態,請更新容量供應商」

建立容量供應商時,請使用與先前使用的容量供應商名稱不同的名稱。或者,刪除具有該名稱的現有容量供應商,然後建立新的容量供應商。

若要檢視所有建立的容量提供者清單,請執行描述describe-capacity-providers AWS CLI 命令:

aws ecs describe-capacity-providers --query capacityProviders\[\].name --region example-region

輸出訊息類似下列內容:

[
    "FARGATE",
    "FARGATE_SPOT",
    "ecs-capacityprovider-1"
]

若要刪除容量提供者,請執行刪除delete-capacity-provider AWS CLI 命令:

aws ecs delete-capacity-provider --capacity-provider ecs-capacityprovider-1 --region example-region

若要建立新的容量提供者,請執行create-capacity-provider AWS CLI 命令:

aws ecs create-capacity-provider --name "example-capacity=provider" --auto-scaling-group-provider "autoScalingGroupArn=arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:autoScalingGroupName/MyAutoScalingGroup,managedScaling={status=ENABLED,targetCapacity=100,minimumScalingStepSize=1,maximumScalingStepSize=100},managedTerminationProtection=ENABLED"

您收到錯誤: 「指定的 Auto Scaling 群組 ARN 已由另一位容量供應商使用。請指定唯一的 Auto Scaling 群組 ARN,然後再試一次」

AWS Auto Scaling 群組和容量供應商必須具有一對一關係。請確定容量供應商僅與一個 AWS Auto Scaling 群組相關聯。確認群組僅與一個容量提供者相關聯。

您建立容量提供者策略並收到錯誤: 「指定的叢集處於忙碌狀態。叢集附件必須處於 UPDATE_COMPLETE 或 UPDATE_FAILED 狀態才能進行更新。請稍候,然後再試一次」

此錯誤會在幾分鐘後自動解決。錯誤解決之後,請嘗試再次更新容量提供者。或者,執行 describe-clusters AWS CLI 命令以檢視附件的目前狀態。然後,等到附件處於 UPDATE_COMPLETE 狀態為止:

aws ecs describe-clusters --clusters example-ARN --include ATTACHMENTS --query clusters\[\].attachmentsStatus --region example-region

完成的更新狀態輸出看起來類似如下:

[
    "UPDATE_COMPLETE"
]

由於容量供應商的限制而收到錯誤

確認您的容量提供者符合下列條件:

  • 您不能針對容量策略指定六個以上的容量供應商。
  • 在叢集策略中使用 AWS Auto Scaling 群組容量供應商或 AWS Fargate 容量供應商。您不能使用這兩種類型的組合。
  • 只有在您執行任務時,才支援容量供應商策略的基本值。

容量供應商已透過 CloudFormation 成功建立,但未顯示在主控台中

當您未將容量提供者與 CloudFormation 範本中的叢集相關聯時,就會發生這種情況。若要避免此問題,請在 CloudFormation 範本中使用下列程式碼片段,將容量提供者與叢集相關聯:

...
ECSCluster:
  Type: 'AWS::ECS::Cluster'
  Properties:
    ClusterName: example-cluster
    CapacityProviders:
      - !Ref ECSCapacityProvider
...

相關資訊

適用於 EC2 啟動類型的 Amazon ECS 容量提供者

刪除 Amazon ECS 中的容量供應商時,如何解決 DELETE_FAILED 錯誤?

AWS 官方
AWS 官方已更新 3 個月前