#amazon-web-services #amazon-ecs #aws-fargate #amazon-ecr
#amazon-web-services #amazon-ecs #aws-fargate #amazon-ecr
Вопрос:
Я пытаюсь развернуть контейнеры в кластере частной сети Fargate на AWS. У меня есть интернет-шлюз на моем единственном VPC:
И у меня есть шлюз NAT для этой конкретной подсети в том же VPC, где находится мой кластер / службы:
Маршрутизация также подходит для этой подсети:
И группа безопасности для службы не блокирует никаких входящих подключений:
Но мои контейнеры даже не начинаются с печально известного исключения: CannotPullContainerError: ответ об ошибке от daemon:Get https://registry-name /: net/http: запрос отменен во время ожидания подключения (Клиент.Превышено время ожидания заголовков)Почему? Спасибо.
Ответ №1:
У вас нет подсети, настроенной для использования NAT-шлюза. В настоящее время ваша таблица маршрутизации отправляет трафик непосредственно в IGW, что делает подсеть общедоступной, а не частной подсетью, что означает, что для чего-либо в этой подсети должен быть назначен общедоступный IP-адрес. Шлюзы NAT, существующие в той же подсети, что и другие ресурсы, волшебным образом не предоставляют этим ресурсам доступ в Интернет, вам необходимо соответствующим образом настроить таблицы маршрутизации.
Ваша сеть должна быть настроена следующим образом:
Общедоступные подсети:
- IGW прилагается
- Шлюз NAT
- Любые другие общедоступные ресурсы, которые должны быть доступны из Интернета, например общедоступный балансировщик нагрузки.
Частные подсети:
- Маршрут к шлюзу NAT в общедоступной подсети. Нет маршрута к IGW.
Комментарии:
1. Спасибо, не могли бы вы уточнить, что мне нужно сделать? Я немного озадачен, так как думал, что у меня есть только частные подсети.
2. Вам необходимо создать 2 набора подсетей в вашем VPC, общедоступных и частных. Общедоступные подсети — это те, которые имеют прямой доступ к Интернету через интернет-шлюз. Это все, что у вас есть на данный момент. Для использования интернет-шлюза ресурсу требуется присвоенный ему общедоступный IP-адрес, после чего он может получить доступ к Интернету напрямую, через IGW, используя свой общедоступный IP-адрес. Затем создайте несколько частных подсетей. Частная подсеть — это подсеть, к которой НЕ подключен IGW. Частная подсеть использует маршрут к шлюзу NAT для обеспечения исходящего доступа в Интернет к ресурсам внутри нее.
3. Я понимаю. Тогда наличие igw и отсутствие общедоступного IP-адреса для службы в этой подсети обречены на отключение?
4. @HasanCanSaral да, точно. В этом сценарии этот ресурс имеет доступ только к ресурсам в VPC и никогда не сможет получить доступ к чему-либо за пределами VPC.