Comme je l'ai dit dans mon commentaire, la solution pour avoir une IP sortante statique en GKE
est d'utiliser Cloud NAT
.
Avis de non-responsabilité !
A Cloud NAT
peut effectuer la NAT pour les nœuds et les Pods dans une passerelle privé cluster, qui est un type de cluster natif VPC.
Cloud.google.com : NAT : Docs : Aperçu : NAT avec GKE
Vous pouvez en savoir plus sur le secteur privé GKE
clusters en suivant la documentation officielle :
Il existe également un guide officiel montrant le processus de création d'un site privé GKE
et ensuite le connecter avec Cloud NAT
:
En suivant le guide ci-dessus, vous pouvez choisir d'utiliser l'adresse IP statique précédemment réservée ou d'en créer une nouvelle. Ce sera l'IP qui GKE
que les noeuds et les pods utiliseront lorsqu'ils communiqueront avec des noeuds "extérieurs". .
J'ai fait un test où j'ai créé un groupe privé GKE
cluster avec 3 noeuds. J'ai créé des pods dont chacun était programmé sur un nœud différent. Chaque pod envoie un paquet à un serveur distant. L'écoute du serveur distant a montré que chaque pod ayant envoyé un message avait la même IP source :
tcpdump: listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
14:06:11.692832 IP (tos 0x0, ttl 54, id 46751, offset 0, flags [DF], proto TCP (6), length 60)
35.198.XXX.XXX.1027 > 10.168.0.2.9833: # NODE1 (POD1) TO SERVER
10.168.0.2.9833 > 35.198.154.155.1027: # REPLY TO (POD1)
35.198.XXX.XXX.2051 > 10.168.0.2.9833: # NODE2 (POD2) TO SERVER
10.168.0.2.9833 > 35.198.154.155.2051: # REPLY TO (POD2)
35.198.XXX.XXX.1538 > 10.168.0.2.9833: # NODE3 (POD3) TO SERVER
10.168.0.2.9833 > 35.198.154.155.1538: # REPLY TO (POD3)