Невозможно подключиться к MongoDB Pod через Pod приложения Flask - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь подключиться к своему модулю MongoDB, но мне не удается.Ранее я просто использовал онлайн-ресурс для размещения своей MongoDB.Теперь я хочу развернуть мою БД с Kubernetes.Однако у меня возникают проблемы с подключением к моему модулю БД через приложение Flask, и я не могу найти примеры использования Minikube или python.

Вот как я пытаюсь подключиться к своему модулю и заполнить его:

be_host = os.getenv('MONGO-DB_SERVICE_HOST', 'mongo-db')
be_port = os.getenv('MONGO-DB_SERVICE_PORT', '27017')
url = 'http://{}:{}/rba-db'.format(be_host, be_port)

app.config['MONGO_DBNAME'] = 'pymongo_db'
app.config['MONGO_URI'] = url

mongo = PyMongo(app)

@app.route('/populate_db')
def populate_db():
    patient = mongo.db.patients
    patient.insert({'id': 1, 'fname': 'Jill', 'lname': 'Smith', 'age': '50', 'weight': '63.3', 'conditions': ['Stage 2 Diabetes', 'Cancer', 'Aids']})
    patient.insert({'id': 2, 'fname': 'John', 'lname': 'Smith', 'age': '52', 'weight': '86.2', 'conditions': ['Heart Disease', 'Cancer']})
    patient.insert({'id': 3, 'fname': 'Ryan', 'lname': 'Gosling', 'age': '25', 'weight': '75', 'conditions': ['Flu']})
    patient.insert({'id': 4, 'fname': 'Sean', 'lname': 'Winnot', 'age': '21', 'weight': '82', 'conditions': ['Lupis']})
    return "Patients Added."

Это мое развертывание:

kind: Service
apiVersion: v1
metadata:
  name: mongo-db
spec:
  type: NodePort
  selector:
    app: mongo-db
  ports:
  - protocol: TCP
    nodePort: 31003
    port: 27017
    targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-db
  labels:
    app: mongo-db
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo-db
  template:
    metadata:
      labels:
        app: mongo-db
    spec:
      containers:
      - name: mongo-db
        image: mongo:latest
        ports:
        - containerPort: 27017

Я попытался:

app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase"

, как предложено, но я получаю ошибку pymongo.errors.OperationFailure: Authentication failed. при попыткедобавить в мою базу данных через / populate_db

Я также пробовал:

mongo = MongoClient("mongodb://mongo:27017/patients")

с тем же результатом, что и у последнего.

Редактировать:

Возникла проблема с неправильным обновлением образа докера

mongo = MongoClient("mongodb://mongo:27017/patients")

работает нормально.

1 Ответ

0 голосов
/ 30 января 2019
url = 'http://{}:{}/rba-db'.format(be_host, be_port)

http:// это верно?

app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase"

Насколько я знаю, mongo url = "mongodb://localhost:27017/myDatabase"

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