Uruchamianie dokera w VPC i uzyskiwanie dostępu do kontenera z innej maszyny VPC

10

Mam problemy podczas uruchamiania dokera w AWS VPC.

Oto moja konfiguracja: Mam dwie maszyny działające w VPC:

  • 10.0.100.150
  • 10.0.100.151

oba mają przypisane elastyczne adresy IP, oba działają w tej samej podsieci z dostępem do Internetu.

Załóżmy, że korzystam z serwera WWW, który obsługuje pliki statyczne w kontenerze na komputerze 10.0.100.150, kontenerze:

  • IP: 172.17.0.2
  • port 8111 jest przekazywany przez port 8111 na komputerze.

Próbuję uzyskać dostęp do plików statycznych z mojego komputera lokalnego (lub inny komputer inny niż VPC próbował również instancji EC2 nie działającej w VPC) i działa bezbłędnie.

Jeśli spróbuję uzyskać dostęp do plików z innego komputera (10.0.100.151), zawiesi się. Używam wget do pobierania plików.

Próbowałem debugować go za pomocą tcpdump i ngrep. Widziałem, że żądanie dociera do kontenera. Jeśli wykonam polecenie ngrep na maszynie hosta, widzę, że żądania przychodzą, ale odpowiedź nie wraca. Jeśli wykonam polecenie w kontenerze, widzę, że żądania nadchodzą, a odpowiedź wraca.

Próbowałem wielu konfiguracji iptables (z włączonym routingiem, z ręcznie przesyłanymi portami itp.), Ale bez powodzenia.

Pomoc w jakikolwiek sposób - nawet wskazówki debugowania byłyby mile widziane.

Dzięki!

Bogdan Gaza
źródło
Możliwy duplikat wystawiania kontenerów dokerów do sieci VPC
Michael - sqlbot
Dwukrotnie przeczytaj post z eksponowaniem kontenerów dokerów do sieci VPC, ale ta sprawa jest zupełnie inna.
Bogdan Gaza
Czy to jest Czy masz już sprawdzanie źródłowego / docelowego adresu IP w wersji 10.0.100.150?
Michael - sqlbot
Tak, mam to wyłączone i przetestowałem również na innym niż domyślny VPC, ten sam błąd.
Bogdan Gaza
Czy możesz wymienić grupy zabezpieczeń dla instancji EC2? Wygląda na to, że instancje nie znajdują się w domyślnej grupie zabezpieczeń, aby umożliwić ruch między innymi instancjami w tej grupie zabezpieczeń.
Andy Shinn,

Odpowiedzi:

2

Konfiguracja sieci kontenerowej jest znacznie łatwiejsza dzięki splotowi . Więcej instrukcji dotyczących AWS znajduje się na blogu projektu .

programista błędów
źródło
Oświadczenie: Jestem częścią zespołu Weaveworks, Inc.
błędów
0

Wygląda na to, że instancje EC2 nie mogą się ze sobą komunikować, ponieważ nie należą do grupy zabezpieczeń, która zezwala na dostęp do portu 8111. Sprawdź, czy grupa zabezpieczeń zezwala na dostęp do siebie (i dodaje obie instancje EC2 do grupy zabezpieczeń) lub czy pozwala podsieci VPC na port 8111.

Andy Shinn
źródło