【问题标题】:ECS provisions multiple servers but never runs the taskECS 提供多台服务器但从不运行任务
【发布时间】:2020-05-14 22:18:43
【问题描述】:

我有一个 ECS 集群,其中容量提供程序是一个自动扩展的 ec2 服务器组,目标跟踪扩展策略和托管扩展已打开。

集群的最小容量为0,最大为100。它使用的实例类型是c5.12xlarge。

我有一个使用 4 个 vCPU 和 4 GiB 内存的任务。当我在该集群上运行该任务的单个实例时,ECS 会非常缓慢地将组自动扩展到 > 1 个服务器(通常是 2 个开始,然后最终添加第三个 - 我已经尝试过多次),但实际上从未在我生气并停止任务之前,运行任务并保持PROVISIONING 的状态很长一段时间。

这是我的任务描述的编辑副本:

{
    "family": "my-task",
    "taskRoleArn": "arn:aws:iam::999999999999:role/My-IAM-Role",
    "executionRoleArn": "arn:aws:iam::999999999999:role/ecsTaskExecutionRole",
    "cpu": "4 vCPU",
    "memory": 4096,
    "containerDefinitions": [
        {
            "name": "my-task",
            "image": "999999999999.dkr.ecr.us-east-1.amazonaws.com/my-container:latest",
            "essential": true,
            "portMappings": [
                {
                    "containerPort": 12012,
                    "hostPort": 12012,
                    "protocol": "tcp"
                }
            ],
            "mountPoints": [
                {
                    "sourceVolume": "myEfsVolume",
                    "containerPath": "/mnt/efs",
                    "readOnly": false
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "myEfsVolume",
            "efsVolumeConfiguration": {
                "fileSystemId": "fs-1234567",
                "transitEncryption": "ENABLED",
                "authorizationConfig": {
                    "iam": "ENABLED"
                }
            }
        }
    ],
    "requiresCompatibilities": [
        "EC2"
    ],
    "tags": [
...
    ]
}

我的问题是:

  1. 为什么,如果我正在运行可以轻松在一个实例上运行的单个任务,是否会将组扩展到至少 2 台服务器?
  2. 为什么它从来不只是部署和运行我的任务?
  3. 我在哪里可以查看它到底发生了什么(日志等)?

【问题讨论】:

    标签: amazon-ec2 amazon-ecs


    【解决方案1】:

    所以事实证明,即使您将 ASG 设置为 ECS 集群的容量提供程序,如果您没有在启动配置中为该 ASG 设置用户数据以具有如下内容:

    #!/bin/bash
    echo ECS_CLUSTER=my-cluster-name >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >> /etc/ecs/ecs.config;
    

    那么它永远不会为您的集群提供单个实例。 ECS 将通过继续增加 ASG 的所需容量来做出响应。

    我个人认为这是 ECS 应确保在您不知情的情况下发生的事情。也许有一个很好的理由不这样做。

    【讨论】:

      猜你喜欢
      • 2023-02-06
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      相关资源
      最近更新 更多