如何解决在为我的 Amazon ECS 集群设置新的容量提供商或更新现有容量提供商时出现的问题?
我无法为我的 Amazon Elastic Container Service(Amazon ECS)集群设置新的容量提供商或更新现有容量提供商。
简短描述
以下是您为 Amazon ECS 集群设置新的容量提供商或更新现有容量提供商时常会遇到的问题:
- 当您使用 AWS 命令行界面(AWS CLI)创建自动扩缩组容量提供商时,收到错误。
- 您收到错误: “指定的容量提供商已存在。要更改现有容量提供商的配置,请更新容量提供商。”
- 您收到错误: “其他容量提供商已在使用指定的自动扩缩组 ARN。请指定一个唯一的自动扩缩组 ARN,然后重试。”
- 当您创建容量提供商策略时,收到错误: “指定的集群处于繁忙状态。群集附件必须处于 UPDATE_COMPLETE 或 UPDATE_FAILED 状态才能更新。请稍候,然后重试。”
- 由于容量提供商的限制,您会收到错误。
- 使用 AWS CloudFormation 成功创建了容量提供商,但它未显示在控制台中。
解决方法
当您使用 AWS CLI 创建自动扩缩组容量提供商时,收到错误
当您使用 AWS CLI 创建容量提供商时,请查看您的 AWS CloudTrail 事件以检查 CreateCapacityProvider API。这些错误是常见的 CapacityProvider API 错误:
- ClientException: 这些错误通常是由客户端操作引起的。客户端操作可能会代表不具有使用操作或资源所需权限的 AWS Identity and Access Management(IAM)用户使用操作或资源。此错误还可能指定标识符无效。
- UpdateInProgressException: 您收到此错误是因为您指定的容器实例上已在进行当前 Amazon ECS 容器代理更新。如果容器代理在过渡阶段(例如 PENDING 或 STAGING)中断连接,则更新可能会停留在该状态。但当代理重新连接时,它会恢复到以前停止的位置。
有关详细信息,请参阅错误。
**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
您收到错误: “指定的容量提供商已存在。要更改现有容量提供商的配置,请更新容量提供商”
当您创建容量提供商时,请使用与之前使用的任何容量提供商不同的名称。或者,您可以删除具有该名称的现有容量提供商,然后创建新的容量提供商。
如需查看创建的所有容量提供商列表,请运行下列命令:
aws ecs describe-capacity-providers --query capacityProviders\[\].name --region example-region
输出类似于下列内容:
[ "FARGATE", "FARGATE_SPOT", "ecs-capacityprovider-1" ]
如需删除容量提供商,请运行下列命令:
aws ecs delete-capacity-provider --capacity-provider ecs-capacityprovider-1 --region example-region
有关示例输出和更多选项,请参阅 delete-capacity-provider。
如需创建新的容量提供商,请运行下列命令:
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"
有关示例输出和更多选项,请参阅 create-capacity-provider。
您收到错误: “其他容量提供商已在使用指定的自动扩缩组 ARN。请指定一个唯一自动扩缩组 ARN,然后重试”
自动扩缩组和容量提供商必须存在一对一关系。您可以将自动扩缩组仅连接到一个容量提供商,反之亦然。确保您的容量提供商仅与一个自动扩缩组相关联。
您收到错误: “指定的集群处于繁忙状态。群集附件必须处于 UPDATE_COMPLETE 或 UPDATE_FAILED 状态才能更新。请稍候,然后重试”
此错误会在几分钟后自动解决。等待后,请重新尝试更新容量提供商。或者,运行此 CLI 命令以查看附件的当前状态。然后,等到附件处于 UPDATE_COMPLETE 状态。
aws ecs describe-clusters --clusters example-ARN --include ATTACHMENTS --query clusters\[\].attachmentsStatus --region example-region
输出内容必须与以下内容类似:
[ "UPDATE_COMPLETE" ]
由于容量提供商的限制,您收到错误
在创建或更新容量提供商之前,请查看下面的几点:
- 对于一个容量策略,不能指定六个以上的容量提供商。
- 您可以在集群策略中使用自动扩缩组容量提供商或 AWS Fargate 容量提供商。你不能同时使用这两种类型。
- 只有当您运行任务时,才支持容量提供商策略的基本值。
容量提供商是使用 CloudFormation 成功创建的,但它未显示在控制台中
当您没有将容量提供商与 CloudFormation 模板中的集群相关联时,可能会发生这种情况。为避免此问题,请在您的 CloudFormation 模板中使用以下代码段将容量提供商与集群相关联:
... ECSCluster: Type: 'AWS::ECS::Cluster' Properties: ClusterName: example-cluster CapacityProviders: - !Ref ECSCapacityProvider ...
相关信息
相关内容
- AWS 官方已更新 4 年前
- AWS 官方已更新 6 个月前
- AWS 官方已更新 4 个月前
- AWS 官方已更新 3 年前