Utwórz pojedynczy wychodzący adres IP dla danej sieci

12

Próbuję ustalić najlepszy sposób w GCP, aby przypisać pojedynczy, zewnętrzny adres IP dla ruchu OUTBOUND. Mój przypadek użycia: muszę podać statyczny adres IP stronie trzeciej, aby mogli go dodać do białej listy, aby moje wystąpienia mogły uzyskać dostęp do interfejsu API. Ponieważ mogę dodawać lub odejmować instancje GCE w przyszłości, nie chcę nadawać im wielu statycznych adresów IP, które mogą ulec zmianie.

Znalazłem tutaj podobne pytanie , ale nie byłem pewien, czy dotyczy ono mojego przypadku użycia.

Mam skonfigurowaną standardową sieć GCP; nie ma VPN, a wszystkie maszyny wirtualne mają unikalne zewnętrzne adresy IP. Właściwie to mi się podoba w ten sposób, ponieważ muszę mieć możliwość SSH do maszyn wirtualnych. Ale z moich maszyn wirtualnych do Internetu chciałbym, aby ruch wydawał się pochodzić z jednego adresu IP. Natychmiastowa myśl, która przychodzi mi do głowy i na którą wskazują dokumenty, to utworzenie instancji NAT, a następnie przekierowanie przez nią ruchu wychodzącego. Kilka problemów z tym podejściem:

  1. Muszę skonfigurować i utrzymywać skrzynkę wyłącznie na potrzeby NAT
  2. To nie jest HA; jeśli ta instancja lub strefa dostępności umrze, moje inne instancje nie będą w stanie kierować ruchu na zewnątrz
  3. Nie wydaje się to zbyt powtarzalne, jeśli będę musiał odtworzyć konfigurację w przyszłości

W szczególności używam GKE / Kubernetes do tego projektu. Czy istnieje najlepsza praktyka, aby zrealizować ten przypadek użycia, czyli HA, niskie koszty utrzymania i powtarzalność?

rob-cng
źródło
Uważam, że najlepszą opcją jest skonfigurowanie sieci VPN, która pomoże również podczas korzystania z GKE. Na przykład: serverfault.com/questions/750389/gke-pod-connecting-via-vpn i jest opłacalny.
George,
@George Nie sądzę, że VPN by to działało, ponieważ nie kontroluję drugiej strony. W tej chwili nie ustanawiałbym VPN z firmą zewnętrzną; Muszę kierować ruchem przez Internet.
rob-cng
1
Posiadanie NAT Gateway powinno to zrobić, ale spowoduje to pojedynczy punkt awarii. Jedna rzecz, która przyszła mi do głowy, posiadanie statycznych adresów IP dla twoich instancji i umożliwienie drugiej stronie umieszczenia ich na białej liście. Jeśli chcesz usunąć dowolne z wystąpień, adres IP będzie nadal zarezerwowany, który możesz dołączyć do nowo utworzonych wystąpień. I dopóki używany jest adres IP (dołączony do instancji), jest bezpłatny.
George,
Tak, myślę, że będziemy musieli zastosować to obejście, dopóki GCP nie wyjdzie z NAT jako usługi podobnej do AWS. Dzięki
rob-cng
1
Czy kiedykolwiek byłeś w stanie rozwiązać ten problem? Jeśli tak, prosimy o opublikowanie odpowiedzi, aby społeczność mogła skorzystać
Faizan

Odpowiedzi:

3

Google Cloud zapewnia teraz zarządzaną usługę NAT NAT - Cloud NAT .

Bramy tej można używać z klastrem GKE, który zapewnia stabilny publiczny adres IP wyjściowy dla wszystkich znajdujących się w nim zasobników, co pozwala na umieszczenie ich na białej liście przez zewnętrznych dostawców usług.

Przykładowa implementacja korzystania z Cloud NAT z GKE znajduje się tutaj - https://cloud.google.com/nat/docs/gke-example

Ponieważ jest to NAT oparty na oprogramowaniu zarządzanym, nie będzie to miało wpływu na przepustowość i dostępność.

Jednak nadal wymaga hosta bastionu, aby móc ssh w twoich instancjach.

Parag
źródło