Как запустить образ Docker в Fargate

У меня есть сервер Dockerised node, который я могу создать локально, и когда я нажимаю кнопку воспроизведения через настольное приложение Docker, он начинает отображаться в моем браузере localhost.

Я пытаюсь заставить тот же сервер Dockerized node работать на Fargate. Сначала я запустил репозиторий AWS ECR, запустил Fargate и добавил кластеры, сервисы и задачи.

У меня вопрос: как заставить Fargate выполнить эквивалент «воспроизведения» образа Docker, чтобы он запускался и начал работать с сервера Fargate?


person Falko    schedule 30.01.2020    source источник


Ответы (1)


Я думаю, вы ищете «задачи», для которых необходимо создать определение задачи, а затем перейти на вкладку «Задача» в кластере ECS и щелкнуть «Запустить новую задачу».

Все шаги следующие:

  1. Создайте репозиторий ECR и вставьте в него свое изображение (необязательно, изображение может быть в общедоступном репозитории в другом месте)
  2. Создать кластер ECS
  3. Создайте роль выполнения задачи IAM (возможно, необязательно, но рекомендуется, я думаю, вам это понадобится только в том случае, если вы используете ECR или хотите записать контейнер STDOUT в журналы cloudwatch). Я считаю, что это создается автоматически, когда вы создаете определение задачи в консоли.
  4. Создайте роль задачи IAM, если вашему контейнеру требуются разрешения AWS (необязательно).
  5. Создайте определение задачи ECS, которое описывает спецификацию вашего контейнера, включая URI для образа: AWS ECR, Docker Hub, Quay.io и т. Д. комбинации могут быть недопустимыми, например 512 МБ памяти и 4 ядра).

Затем вы можете «Просто нажать кнопку воспроизведения», нажав кнопку «Запустить новую задачу» на вкладке «Задачи» вашего кластера ECS. Вам нужно будет настроить несколько параметров времени выполнения, но затем он будет работать до тех пор, пока процесс не завершится или задача не будет удалена.

Кроме того, Cloudwatch Events может запускать эти задачи по расписанию или в ответ на определенные события, и это однострочный интерфейс командной строки для запуска этой задачи.

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

person TopherIsSwell    schedule 30.01.2020
comment
Спасибо, я думаю, что сейчас я близко, только что получаю 502 Bad Gateway - person Falko; 31.01.2020
comment
Убедитесь, что у вас есть сопоставление портов в определении задачи. Я никогда не подключался к веб-сервису для задачи, поэтому не уверен, что смогу помочь. Если вы используете службу ECS вместо задачи, вы можете поместить службу в целевую группу и иметь для нее точку ELB, и именно так я бы рекомендовал использовать веб-службу из ECS. - person TopherIsSwell; 31.01.2020
comment
Для Fargate вам нужно будет включить сеть задач, и она должна подключиться к ENI. Убедитесь, что у ENI есть общедоступный IP-адрес. Это даст вам IP-адрес для подключения. - person TopherIsSwell; 31.01.2020