Связи Docker с сетевым режимом awsvpc - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть веб-приложение на Java, развернутое в ECS с использованием образа tomcat: 8.5-jre8-alpine.Сетевой режим для этой задачи - awsvpc;У меня есть много таких задач, выполняемых на 3 экземплярах EC2, запущенных ALB.

Это работает нормально, но теперь я хочу добавить обратный прокси-сервер nginx перед каждым контейнером tomcat, как в этом примере: https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy.

Мой сокращенный файл определения контейнера:

{
    "containerDefinitions": [
     {
       "name": "nginx",
       "image": "<NGINX reverse proxy image URL>",
       "memory": "256",
       "cpu": "256",
       "essential": true,
       "portMappings": [
         {
           "containerPort": "80",
           "protocol": "tcp"
         }
       ],
       "links": [
         "app"
       ]
     },
     {
       "name": "app",
       "image": "<app image URL>",
       "memory": "1024",
       "cpu": "1024",
       "essential": true
     }
    ],
    "volumes": [],
    "networkMode": "awsvpc",
    "placementConstraints": [],
    "family": "application-stack"
}

Когда я пытаюсь сохранить определение новой задачи, я получаю сообщение об ошибке: «ссылки не поддерживаются, когда тип сети - awsvpc»

Я использую сетевой режим awsvpc, потому что он дает мне детальный контроль над входящим трафиком через группу безопасности.

Есть ли способ создать определение задачи с двумя связанными контейнерами при использовании awsvpcсетевой режим?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Вам вообще не нужна связывающая часть, потому что awsvpc позволяет ссылаться на другие контейнеры просто с помощью

localhost: 8080 (или с любым другим портом, на который назначен ваш другой контейнер)

в вашем файле конфигурации nginx.

Так что удалите ссылки из вашего json и используйте localhost: {container-port} в конфигурации nginx.Все просто.

0 голосов
/ 19 февраля 2019

На самом деле, если вы хотите использовать обратный прокси-сервер, вы можете прекратить использовать ссылки, потому что вы можете сделать обнаружение службы или использовать свой обратный прокси-сервер для использования своей зависимости.

Если вы все еще хотите использовать link вместо того, чтобы использовать обратный прокси-сервер, вы можете использовать консул и Фабио .Обе службы доступны для подключения.

При этом нет необходимости использовать awsvpc, и вы можете использовать консул для обнаружения сервисов.

Надеюсь, это поможет!

...