Static IP sortants dans Kubernetes
j'exécute un cluster k8s dans google cloud (GKE) et un serveur MySQL dans aws (RDS). Les Pods doivent se connecter à des RDS qui n'autorisent les connexions qu'à partir de certaines IP. Comment configurer le trafic sortant pour avoir une IP statique?
2 réponses
j'ai eu le même problème pour me connecter à un serveur sftp depuis 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 }}
alors, je suppose que votre pod est assigné à votre cluster de noeuds par défaut. Extrait par défaut de votre piscine nom de noeud:
gcloud compute instances list | awk '{ print }' | grep default-pool
Effacer l'adresse ip externe par défaut de l'instance vm:
gcloud compute instances delete-access-config {{ VM_DEFAULT-POOL_INSTANCE }} --access-config-name external-nat
ajouter votre adresse 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é à la liste par défaut nœud, n'oubliez pas de le sélectionner avec un nodeSelector:
nodeSelector:
cloud.google.com/gke-nodepool: {{ NODE_NAME }}
j'ai fait quelques recherches et j'ai trouvé un couple de choses.
ce que nous recherchons s'appelle "egress IPs" ou NAT-as-a-Service et ils ne sont pas encore disponibles en GKE.
dans tous les cas nous avons deux options différentes:
- créer une VM de Nat Gateway qui agit comme un proxy de sortie. Voici un bel article à ce sujet (google cloud passerelle NAT)
- attribuer des adresses ip statiques à conteneur cluster VM instances
j'Espère que ça aide!