Estou tentando determinar a melhor maneira no GCP de atribuir um único endereço IP externo para o tráfego OUTBOUND. Meu caso de uso: preciso fornecer um IP estático a terceiros para que eles possam incluí-lo na lista de permissões, para que minhas instâncias possam acessar sua API. Como posso adicionar ou subtrair instâncias de GCE no futuro, não quero fornecer a eles vários IPs estáticos que possam mudar.
Encontrei uma pergunta semelhante aqui, mas não tinha certeza de que ela aborda meu caso de uso.
Eu tenho uma rede GCP padrão configurada; não há VPNs e todas as VMs têm IPs externos exclusivos. Na verdade, gosto dessa maneira porque preciso poder fazer o SSH para as VMs. Mas das minhas VMs para a Internet, eu gostaria que o tráfego parecesse que tudo vem de um único IP. O pensamento imediato que me vem à cabeça e que os documentos sugerem é criar uma instância NAT e, em seguida, rotear o tráfego de saída através disso. Alguns problemas com essa abordagem:
- Eu tenho que configurar e manter uma caixa exclusivamente para fins de NAT
- Não é HA; se essa instância ou zona de disponibilidade morrer, minhas outras instâncias não poderão rotear tráfego externamente
- Não parece muito repetitivo se eu tiver que recriar a configuração no futuro
Especificamente, estou usando o GKE / Kubernetes para este projeto. Existe uma prática recomendada para realizar esse caso de uso HA, baixa manutenção e repetível?
fonte
Respostas:
Você pode fazer isso roteando todo o seu tráfego por meio de uma única instância que executa o NAT nas outras instâncias. O Google tem um guia para fazer isso em https://cloud.google.com/compute/docs/networking#natgateway
fonte
O Google Cloud agora oferece um serviço gerenciado de Gateway NAT - Cloud NAT .
Esse gateway pode ser usado com um cluster GKE, que fornece um IP de saída pública estável a todos os pods dentro dele, o que permite que eles sejam incluídos na lista de permissões por provedores de serviços terceirizados.
A implementação de exemplo para usar o Cloud NAT com GKE é fornecida aqui - https://cloud.google.com/nat/docs/gke-example
Além disso, como este é um NAT gerenciado com base em software, a largura de banda e a disponibilidade não serão afetadas.
No entanto, isso ainda precisa de um host bastião para poder ssh em suas instâncias.
fonte