Подключение к MongoDB в модуле Kubernetes с помощью kubernetes-клиента с использованием Python - PullRequest
0 голосов
/ 09 октября 2019

У меня запущен экземпляр MongoDB в Kubernetes, и я пытаюсь подключиться к нему, используя Python с библиотекой Kubernetes.

Я подключаюсь к контексту в строке cmd, используя:

kubectl config use-context CONTEXTNAME

В Python я использую:

from kubernetes import client, config
config.load_kube_config(
    context = 'CONTEXTNAME'
)

Для подключения к MongoDB в строке cmd:

kubectl port-forward svc/mongo-mongodb 27083:27017 -n production &

Затем я открываю новый терминал и использую PORT_FORWARD_PID = $! для подключения

Я пытаюсь подключиться к экземпляру MongoDB, используя Python с библиотекой Kubernetes-client, какие-либо идеи относительно того, как выполнить вышеупомянутое?

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Определите службу kubernetes, например, , например, , а затем укажите ссылку на свой mongodb, используя строку подключения, аналогичную mongodb://<service-name>.default.svc.cluster.local

.
0 голосов
/ 10 октября 2019

Насколько я понимаю, вам нужно выяснить конечную точку клиента БД.

Этого можно достичь, если вы будете следовать этой статье MongoDB на K8s , убедитесь, что вы получили URI для MongoDB. (пример)

“mongodb://mongo-0.mongo,mongo-1.mongo,mongo-2.mongo:27017/dbname\_?”

и после этого вы можете позвонить своему клиенту БД в скрипте Python.

import pymongo
import sys

##Create a MongoDB client
client = pymongo.MongoClient('mongodb://......') 

##Specify the database to be used
db = client.test

##Specify the collection to be used
col = db.myTestCollection

##Insert a single document
col.insert_one({'hello':'world'})

##Find the document that was previously written
x = col.find_one({'hello':'world'})

##Print the result to the screen
print(x)

##Close the connection
client.close()

Надеюсь, что это даст вам представление. Удачи!

...