J'exécute un cluster k8s dans google cloud (GKE) et un serveur MySQL dans aws (RDS). Les pods doivent se connecter au RDS qui autorise uniquement les connexions à partir de certaines IP. Comment puis-je configurer le trafic sortant pour avoir une IP statique?
J'ai eu le même problème pour me connecter à un serveur sftp à partir d'un pod. Pour résoudre ce problème, vous devez d'abord créer une adresse IP externe:
gcloud compute addresses create {{ EXT_ADDRESS_NAME }} --region {{ REGION }}
Ensuite, je suppose que votre pod est affecté à votre cluster de nœuds de pool par défaut. Extrayez le nom de votre nœud de pool par défaut:
gcloud compute instances list | awk '{ print $1 }' | grep default-pool
Effacez l'IP externe par défaut de l'instance vm:
gcloud compute instances delete-access-config {{ VM_DEFAULT-POOL_INSTANCE }} --access-config-name external-nat
Ajoutez votre IP statique externe créée avant:
gcloud compute instances add-access-config {{ VM_DEFAULT-POOL_INSTANCE }} --access-config-name external-nat --address {{ EXT_ADDRESS_IP }}
Si votre pod n'est pas attaché au nœud du pool par défaut, n'oubliez pas de le sélectionner avec un nœudSelector:
nodeSelector:
cloud.google.com/gke-nodepool: {{ NODE_NAME }}
J'ai fait des recherches et j'ai trouvé deux ou trois choses.
La chose que nous recherchons s'appelle "IP de sortie" ou NAT-as-a-Service et elles ne sont pas encore disponibles dans GKE.
Dans tous les cas, nous avons deux options différentes:
J'espère que cela aide!
Vous pouvez utiliser kubeip, un pod qui, pour chaque nouveau nœud, attribuera une adresse IP à partir d'un pool prédéfini.