Estoy tratando de acceder de forma remota a una instancia de la base de datos AWS RDS que se ejecuta en PVC privado a través de
reenvío de puerto de kubectl
La accesibilidad pública de la base de datos de RDS está establecida en "No", también tengo un clúster de EKS que se ejecuta en el mismo PVC de RDS, los pods y los servicios de EKS pueden comunicarse con AWS RDS.
Hasta ahora he creado el siguiente servicio.
kind: Service metadata: name: postgres-service spec: type: ExternalName externalName: xxx-xxx.xxxxxxx.eu-xx-1.rds.amazonaws.comY debajo está el comando kubectl que he ejecutado.
kubectl run -it --rm --image=postgres postgres-client -- postgres-service --host=xx-xx.xx.eu-west-1.rds.amazonaws.com --port=5432 --username=xxx --password=xxx --dbname=xxxy el resultado que obtengo es
error: timed out waiting for the conditionSi no quiere usar kubectl, puede usar la configuración del módulo de cliente de postgress en el clúster de EKS a tiempo completo.
O bien, puede ejecutar un comando como este:
kubectl run postgresql-client --rm --tty -i --restart='Never' --namespace default --image bitnami/postgresql --env="PGPASSWORD=<YOUR_PASSWORD>" --command -- psql --host <YOUR_HOSTNAME=SVC_NAME_OR_IP> -U <HERE_USERNAME>asegúrese de estar utilizando el nombre de espacio de nombres y el nombre de servicio correctos.
Ambos están en la misma VPC, lo que significa que puede conectarse directamente a través de una dirección interna o IP sin crear un servicio externo.