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:
- Muszę skonfigurować i utrzymywać skrzynkę wyłącznie na potrzeby NAT
- 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
- 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ść?
źródło
Odpowiedzi:
Możesz to zrobić, kierując cały ruch przez jedną instancję, która wykonuje NAT dla innych instancji. Google ma przewodnik na ten temat na https://cloud.google.com/compute/docs/networking#natgateway
źródło
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.
źródło