首页 > 解决方案 > AWS ECS awsvpc 在本地主机上没有通信

问题描述

我遇到了 ECS Fargate 上的容器问题,更具体地说,一个任务中的 2 个容器相互通信。

根据链接的文章(https://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/),一旦在任务内部配置了两个容器,任务中的任何其他容器都应该能够仅使用localhost127.0.0.1与该容器通信。

但是我似乎无法得到这种行为。我尝试将其分解为最简单的形式——在 1 个容器上运行 nginx,端口映射为 80,在另一个容器上运行一个简单的 curl 命令,但没有任何乐趣。

我是否遗漏了一些我需要做的事情或一些配置,以使 2 个容器在 ECS 任务定义中通过localhost127.0.0.1进行通信?

包含 2 个容器的任务定义的 JSON 文件:

{
"requiresCompatibilities": [
    "FARGATE"
],
"inferenceAccelerators": [],
"containerDefinitions": [
    {
        "name": "container-a",
        "image": "******.dkr.ecr.eu-west-1.amazonaws.com/repository-a:latest",
        "memoryReservation": "2048",
        "cpu": "1024",
        "resourceRequirements": null,
        "essential": true,
        "portMappings": [
            {
                "containerPort": "5000",
                "protocol": "tcp"
            }
        ],
        "environment": null,
        "environmentFiles": [],
        "secrets": null,
        "mountPoints": null,
        "volumesFrom": null,
        "hostname": null,
        "user": null,
        "workingDirectory": null,
        "extraHosts": null,
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "/ecs/test-task-definition",
                "awslogs-region": "eu-west-1",
                "awslogs-stream-prefix": "ecs"
            }
        },
        "ulimits": null,
        "dockerLabels": null,
        "dependsOn": null,
        "repositoryCredentials": {
            "credentialsParameter": ""
        }
    },
    {
        "name": "container-b",
        "image": "******.dkr.ecr.eu-west-1.amazonaws.com/repository-b:latest",
        "memoryReservation": "2048",
        "cpu": "1024",
        "resourceRequirements": null,
        "essential": true,
        "portMappings": [],
        "environment": null,
        "environmentFiles": [],
        "secrets": null,
        "mountPoints": null,
        "volumesFrom": null,
        "hostname": null,
        "user": null,
        "workingDirectory": null,
        "extraHosts": null,
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "/ecs/test-task-definition",
                "awslogs-region": "eu-west-1",
                "awslogs-stream-prefix": "ecs"
            }
        },
        "ulimits": null,
        "dockerLabels": null,
        "dependsOn": null,
        "repositoryCredentials": {
            "credentialsParameter": ""
        }
    }
],
"volumes": [],
"networkMode": "awsvpc",
"memory": "4096",
"cpu": "2048",
"executionRoleArn": "arn:aws:iam::******:role/ecr-execution-role",
"family": "test-task-definition",
"taskRoleArn": "arn:aws:iam::******:role/ecs-task-role",
"tags": []
}

标签: dockeramazon-ecs

解决方案


推荐阅读