GCP k8s - из кластера в другой кластер с mongodb - PullRequest
0 голосов
/ 04 января 2019

В проекте GCP у меня есть архитектура K8s, включающая 2 кластера.

  • один кластер для микросервисов
  • один кластер для mongodb

Я проверил свой кластер mongodb изнутри и убедился, что он работает как задумано. То, что я пытаюсь сделать сейчас, это подключиться из модуля в другом кластере. Я показал сервис монго, используя порт узла в кластере mongodb :

  apiVersion: v1
  kind: Service
  metadata:
    labels:
      name: mongo
    name: mongodb-service
    annotations:
        cloud.google.com/load-balancer-type: "Internal"
  spec:
    externalTrafficPolicy: Local
    ports:
    - name: port-mongodb
      port: 27017
      protocol: TCP
      targetPort: 27017
    selector:
      role: mongo
    sessionAffinity: None
    type: NodePort

С IP моего mongodb кластера:

- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://35.240.47.130
    name: gke_myproject_europe-west1-b_mongodb

И порт моего NodePort:

mongodb-service   NodePort    10.3.248.249   <none>        27017:32752/TCP   6m

Из нового модуля с python в кластер microservice (точно такой же, какой я использовал для тестирования кластера mongodb изнутри), я выполняю следующий скрипт на python:

from pymongo import MongoClient
client = MongoClient("mongodb://login:pass@35.240.47.130:32752")
database = client["testdb"]
collection = database["testcollection"]
inserted_id = 
collection.insert_one({"moonlight":"sonata"}).inserted_id

Результатом всегда является ошибка:

pymongo.errors.ServerSelectionTimeoutError: mongo:32752: timed out

Что я делаю не так?

UPDATE

Кроме того, вот некоторые тесты nslookup из кластера microservices . Во-первых, я проверяю IP службы сервиса mongodb NodePort

root@pybbox-55bdc76ddb-nw5gm:/# nslookup 10.3.248.249
Server:     10.35.240.10
Address:    10.35.240.10#53

** server can't find 249.248.3.10.in-addr.arpa: NXDOMAIN

Кроме того, я проверяю, видит ли кластер другой, используя IP-адрес кластера.

root@pybbox-55bdc76ddb-nw5gm:/# nslookup 35.240.47.130 
Server:     10.35.240.10
Address:    10.35.240.10#53

Non-authoritative answer:
130.47.240.35.in-addr.arpa  name = 130.47.240.35.bc.googleusercontent.com.

Authoritative answers can be found from:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...