Я пытаюсь подключить приложение Java, работающее в кластере движка GCP Kubernetes, с кластером Mongo Atlas (M20). Раньше все работало нормально, когда у меня не был включен VPC Peering и я использовал обычную строку подключения. Но сейчас я пытаюсь использовать пиринг VPC с сетью default
VPC в моем проекте GCP. Я выполнил шаги, указанные в https://docs.atlas.mongodb.com/security-vpc-peering/. Я выбрал Atlas CIDR 192.168.0.0/18 (b / c "Блок Atlas CIDR должен быть не меньше a / 18") и после связывания проекта GCP и кластера Atlas добавил 10.128.0.0/9 в белый список IP. для кластера Атлас (b / c он говорит, что это диапазон по умолчанию для auto в проектах GCP).
Я действительно могу подключиться через оболочку Mongo через mongo "mongodb+srv://<cluster_name>-pri.crum0.gcp.mongodb.net/itls"
с другой виртуальной машины в моем проекте GCP. Но приложение, работающее на модуле в моем кластере GCP, не может подключиться. Точная ошибка, которую я вижу в приложении Java:
Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches com.mongodb.client.internal.MongoClientDelegate$1@a07fbd8. Client view of cluster state is {type=REPLICA_SET, servers=[{address=<cluster_name>-shard-00-00-pri.crum0.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.SocketTimeoutException: connect timed out}}, {address=<cluster_name>-shard-00-01-pri.crum0.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.SocketTimeoutException: connect timed out}}, {address=<cluster_new>-shard-00-02-pri.crum0.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.SocketTimeoutException: connect timed out}}]
Возможные проблемы:
1) is it possible to connect from a GCP cluster at all (or perhaps, why is this cluster somehow not part of default VPC network)?
2) is there something wrong in the Atlas CIDR range or my IP whitelist range?
Любая помощь будет оценена по достоинству.
kubectl get pods
, а затемkubectl exec java_pod_name ping <cluster_name>-pri.crum0.gcp.mongodb.net
? - person mebius99   schedule 10.06.2020kubectl run -it --rm --generator=run-pod/v1 ubuntu --image=ubuntu -- /bin/bash
зарегистрирует вас в оболочке внутри модуля, чтобы вы моглиapt-get install
и запускать команды оболочки ping и mongo. - person Will R.O.F.   schedule 10.06.2020