web-dev-qa-db-fra.com

IP publique stable ou plage IP pour les connexions sortantes dans GKE

J'utilise Google Kubernetes Engine pour exécuter des modules à la demande. Chaque pod est publiquement exposé à Internet à l'aide d'un service nodeport.

Je cherche un moyen dans GKE d'obtenir une seule IP ou une plage IP pour les connexions sortantes, de les donner à des API tierces pour les mettre sur liste blanche.

Les adresses IP des nœuds GKE ne sont pas gérables lorsque les nœuds sont mis à l'échelle automatiquement ou lorsque je les mets à niveau. J'ai besoin d'un moyen de maintenir une adresse IP sortante cohérente.

J'ai essayé d'utiliser une simple NAT passerelle vers les nœuds Kubernetes (en utilisant l'exemple de ici ), et tandis que cela achemine les connexions sortantes vers le NAT Gateway, il interrompt le trafic entrant vers les pods (service Nodeport) car ils sont déposés à la passerelle NAT.

  • Existe-t-il une plage d'adresses IP par défaut pour une région Google Cloud que je peux fournir au tiers pour la liste blanche (ou)

  • Si GKE fournit un moyen de sélectionner les IP externes des nœuds dans une liste pré-réservée d'IP statiques (ou)

  • Existe-t-il un autre moyen d'obtenir une seule adresse IP statique ou une plage IP qui représente le trafic sortant des pods

J'ai trouvé des questions similaires comme this , mais elles ne résolvent pas mon problème car les pods doivent être connectables en externe, ce qui casse lors de l'utilisation d'un NAT.

19
Parag

Google Cloud propose désormais un service de passerelle géré NAT - Cloud NAT .

Cette passerelle peut être utilisée avec un cluster GKE, qui fournit une IP de sortie publique stable à tous les pods à l'intérieur, ce qui leur permet d'être mis sur liste blanche par des fournisseurs de services tiers.

L'exemple d'implémentation pour l'utilisation de Cloud NAT avec GKE est fourni ici - https://cloud.google.com/nat/docs/gke-example

6
Parag

Vous pouvez essayer cette solution:

https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

Dans des circonstances normales, les nœuds Google Kubernetes Engine acheminent tout le trafic de sortie via la passerelle Internet associée à leur cluster de nœuds. La connexion à la passerelle Internet, à son tour, est définie par le réseau Compute Engine associé au cluster de nœuds. Chaque nœud du cluster possède une adresse IP externe éphémère. Lorsque des nœuds sont créés et détruits lors de la mise à l'échelle automatique, de nouvelles adresses IP de nœuds sont allouées automatiquement.

Le comportement de la passerelle par défaut fonctionne bien dans des circonstances normales. Cependant, vous souhaiterez peut-être modifier la façon dont les adresses IP externes éphémères sont allouées afin de:

  • Fournissez un service tiers avec une adresse IP externe cohérente.
  • Surveillez et filtrez le trafic sortant du cluster Google Kubernetes Engine.
1
alphayax

Votre meilleur pari pour cette configuration est d'utiliser un service LoadBalancer ou une ressource Ingress pour gérer les demandes entrantes, vous pouvez attribuer une adresse IP statique unique à tous vos pods, quelle que soit leur taille. Utilisez ensuite l'exemple que vous avez fourni pour le trafic sortant.

Les adresses IP externes attribuées à chaque nœud sont éphémères et sont choisies dans la plage des adresses IP Google disponibles. Veuillez consulter cet article de pile qui explique comment trouver la liste des adresses IP Google.

1
Patrick W