排查 Amazon ECS Anywhere 问题
Amazon ECS Anywhere 支持向 Amazon ECS 集群注册外部实例,如本地部署服务器或虚拟机(VM)。以下是您可能遇到的常见问题以及一般故障排除建议。
外部实例注册问题
向 Amazon ECS 集群注册外部实例时,必须满足以下要求:
-
必须检索 AWS Systems Manager 激活,其中包含激活 ID 和激活码。您可以用它将外部实例注册为 Systems Manager 托管实例。请求 Systems Manager 激活时,可指定注册限制和过期日期。注册限制指定可以使用激活注册的最大实例数。注册限制的默认值为
1
实例。过期日期指定激活的过期时间。原定设置值为 24 小时。如果您用于注册外部实例的 Systems Manager 激活无效,请求新实例。有关更多信息,请参阅 将外部实例注册到 Amazon ECS 集群。 -
IAM 策略用于为外部实例提供与 AWS API 操作通信所需的权限。如果未正确创建此托管策略且不包含所需的权限,则外部实例注册失败。有关更多信息,请参阅 Amazon ECS Anywhere IAM 角色。
-
Amazon ECS 提供了一个安装脚本,用于在您的外部实例上安装 Docker、Amazon ECS 容器代理和 Systems Manager Agent。如果安装脚本失败,则脚本很可能无法在同一实例上再次运行,而不会发生错误。如果发生这种情况,请按照清理过程清除 AWS 资源,这样,您可以再次运行安装脚本。有关更多信息,请参阅 注销 Amazon ECS 外部实例。
注意
请注意,如果成功请求安装脚本并使用了 Systems Manager 激活,则第二次运行安装脚本将使用 Systems Manager 激活。这反过来可能会让您达到该激活的注册限制。如果达到限制,必须创建一个新激活。
-
在外部实例上运行 GPU 工作负载的安装脚本时,如果没有检测到或正确配置 NVIDIA 驱动程序,将发生错误。安装脚本使用
nvidia-smi
命令来确认 NVIDIA 驱动程序的存在。
外部实例网络问题
要传达任何更改,您的外部实例需要与 AWS 连接的网络。如果您的外部实例失去了与 AWS 的网络连接,在手动停止之前,在您的实例上运行的任务将继续运行。和 AWS 的连接恢复时,Amazon ECS 容器代理和 Systems Manager Agent 在外部实例上使用的 AWS 凭据将自动续订。有关用来沟通外部实例和 AWS 的 AWS 域的更多信息,请参阅 联网 。
在外部实例上运行任务时出现问题
如果您的任务或容器无法在外部实例上运行,最常见的原因是网络或权限相关。如果您的容器从 Amazon ECR 中提取其镜像或配置为将容器日志发送到 CloudWatch Logs,则您的任务定义必须指定一个有效的任务执行 IAM 角色。如果没有有效的任务执行 IAM 角色,您的容器将无法启动。有关网络相关问题的更多信息,请参阅 外部实例网络问题。
重要
Amazon ECS 提供 Amazon ECS 日志收集工具。您可以用它从外部实例收集日志进行故障排除。有关更多信息,请参阅 使用 Amazon ECS 日志收集器收集容器日志 。