Expor contêineres do docker à rede vpc

8

Eu tenho um servidor ubuntu executando o docker com um contêiner. O endereço IP do meu servidor é 172.31.12.29/20 no meu vpc. Possui pontes de reboque (docker0 e lxcbr0).

O endereço IP do meu contêiner é 172.17.0.2/16.

O host e o contêiner podem executar ping eles mesmos.

Eu tenho outro servidor no meu vpc com 172.31.1.233/20 para o endereço IP. Eu só quero alcançar meus contêineres neste servidor, mas não sei como fazer isso.

Meus dois servidores podem executar ping-se para.

Eu tento fazer isso configurando minha tabela de rotas vpc para rotear as solicitações direcionadas 172.17.0.0/16 para 172.31.12.29, mas não funciona.

Qualquer ideia ?

Costent
fonte

Respostas:

5

Parece que você também precisa desabilitar a verificação de IP de origem / destino na instância que hospeda os contêineres (e precisa da rota estática na tabela de rotas da VPC, apontando para essa instância pelo ID). A infraestrutura de rede VPC reduz o tráfego IP com endereços IP que não fazem sentido com base no que a infraestrutura sabe internamente sobre os endereços IP associados a cada instância. Essa configuração altera essa funcionalidade nas instâncias em que você a aplica. Se você tiver uma instância NAT, notará que isso já foi feito para essa instância; caso contrário, não será possível rotear o tráfego externo para / de outras instâncias.

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ModifyInstanceAttribute.html

Isso também está em Ações da instância no console.

Michael - sqlbot
fonte
0

Você pode expor a porta do contêiner (docker run -p 1234: 1234) e conectar-se ao endereço das instâncias do ec2 (10.xyz:1234)

Para evitar endereços codificados no lado do consumidor, você pode usar o padrão embaixador: https://docs.docker.com/engine/admin/ambassador_pattern_linking/

Ziemke, peixe de Johannes
fonte