跳至内容

为什么我的预期实例计数与 Amazon ECS 容量提供商管理的实际实例计数不同?

2 分钟阅读
0

我的 Amazon Elastic Container Service (Amazon ECS) 容量提供商的所需实例计数与我预期的不同。或者,所需实例计数与关联的 Amazon EC2 自动扩缩组的实例数量不同。

解决方案

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

检查 EC2 自动扩缩组中的实例是否无法加入集群

检查实例是否显示在与您的容量提供商关联的自动扩缩组中,而不是显示在 Amazon ECS 控制台上。如果存在网络配置、AWS Identity and Access Management (IAM) 或 Amazon ECS 容器代理问题,则容器实例将无法加入集群。

要解决这些问题,请参阅为什么我的 Amazon EC2 实例无法加入 Amazon ECS 集群?

检查容量提供商的配置

使用 Amazon ECS 控制台或 AWS CLI。

Amazon ECS 控制台

完成以下步骤:

  1. 打开 Amazon ECS 控制台
  2. 在导航窗格中,选择 Clusters(集群)。
  3. 选择您的集群。
  4. 选择 Infrastructure(基础设施)选项卡。

AWS CLI

运行以下 describe-capacity-providers 命令:

aws ecs describe-capacity-providers --capacity-providers YOUR_CAPACITY_PROVIDER

**注意:**请将 YOUR_CAPACITY_PROVIDER 替换为您的容量提供商名称。

在输出中,检查 TargetCapacityminimumScalingStepSize 值。

要保持集群的额外容量,请将 TargetCapacity 的值设置为小于 100%。值越低,集群的额外容量越高。有关目标容量的详细信息,请参阅深入了解 Amazon ECS 集群自动扩缩。要修改 TargetCapacity,请使用 Amazon ECS 控制台。或者,运行以下 update-capacity-provider 命令:

aws ecs update-capacity-provider --name YOUR_CAPACITY_PROVIDER --auto-scaling-group-provider managedScaling={targetCapacity=DESIRED_VALUE}

**注意:**请将 YOUR_CAPACITY_PROVIDER 替换为您的容量提供商名称,将 DESIRED_VALUE 替换为您的 TargetCapacity 值。

MinimumScalingStepSize 定义了 Amazon ECS 可以横向扩展的最小实例数量。即使实际需求小于该值,Amazon ECS 也会根据 MinimumScalingStepSize 进行扩展。因此,Amazon ECS 可能会暂时与容量提供商关联超过所需数量的容器实例。要更新 minimumScalingStepSize,请运行以下 update-capacity-provider 命令:

aws ecs update-capacity-provider --name YOUR_CAPACITY_PROVIDER --auto-scaling-group-provider managedScaling={minimumScalingStepSize=DESIRED_VALUE}

**注意:**请将 YOUR_CAPACITY_PROVIDER 替换为您的容量提供商名称,将 DESIRED_VALUE 替换为您的 MinimumScalingStepSize 值。

有关详细信息,请参阅通过集群自动扩缩功能自动管理 Amazon ECS 容量

检查自动扩缩组的配置

要检查自动扩缩组的自动扩缩策略和容量配置,请运行以下 describe-auto-scaling-groups 命令:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names YOUR_AUTO_SCALING_GROUP

**注意:**请将 YOUR_AUTO_SCALING_GROUP 替换为与您的容量提供商关联的自动扩缩组的名称。

Amazon ECS 集群自动扩缩会自动向容量提供商关联的自动扩缩组添加扩展策略。因此,最好不要修改或添加与自动扩缩组关联的扩展策略。

要根据 CPU 使用率等指标扩展 Amazon ECS,最佳做法是使用 AWS 应用程序自动扩缩。有关如何使用自定义指标的信息,请参阅 Autoscaling Amazon ECS services based on custom metrics with Application Auto Scaling

集群自动扩缩不会修改自动扩缩组的 MinimumCapacityMaximumCapacity 值。如果 MinimumCapacity 高于 0,则表示可能存在空实例。如果 MaximumCapacity 过低,容量提供商将无法扩展以满足 Amazon ECS 服务的需求。要修改这些值,请运行以下 update-auto-scaling-group 命令:

aws autoscaling update-auto-scaling-group --auto-scaling-group-name YOUR_AUTO_SCALING_GROUP --min-size DESIRED_VALUE --max-size DESIRED_VALUE

**注意:**请将 YOUR_AUTO_SCALING_GROUP 替换为与您的容量提供商关联的自动扩缩组的名称,将 DESIRED_VALUE 替换为您的容量值。

AWS 官方已更新 1 年前