Подключитесь к кластеру mongodb atlas из модуля kubernetes?

#node.js #mongodb #kubernetes

Вопрос:

Не удалось подключиться к mongodb atlas с помощью модуля kubernetes. Перепробовал почти все, что доступно в Интернете, но безуспешно.

файл yaml

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: weare-auth-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: weare-auth
  template:
    metadata:
      labels:
        app: weare-auth
    spec:
      containers:
        - name: weare-auth
          image: <docker-username>/weare-auth
          env:
            - name: PORT
              value: "3001"
      restartPolicy: Always
      dnsPolicy: Default
---
apiVersion: v1
kind: Service
metadata:
  name: weare-auth-srv
spec:
  selector:
    app: weare-auth
  ports:
    - name: weare-auth
      protocol: TCP
      port: 3001
      targetPort: 3001

 

и вот мой экспресс-код

 import mongoose from "mongoose";

import { app } from "./app";

const start = async () => {
  try {
    await mongoose.connect(
      "mongodb://<username>:<password>@test-clus.wpg0x.mongodb.net/auth",
      {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        useCreateIndex: true,
      }
    );
    console.log("Connected to mongodb");

    const PORT = process.env.PORT || 3001;
    app.listen(PORT, () => {
      console.log(`Listening on port ${PORT}`);
    });
  } catch (err) {
    console.error(err);
  }
};

start();

 

Вот журналы

Найдите скриншот журналов ошибок здесь

Я замаскировал верительные грамоты. Также я могу подключиться к кластеру mongodb atlas через оболочку и Robo3T. Также попытался настроить политику dnsPolicy, как это было упомянуто в сообщении, но безуспешно.

Есть идеи, что я здесь упускаю?

Комментарии:

1. Пожалуйста, добавьте журналы, иначе это будет игра в угадайку.

2. @F1ko Добавил скриншот журналов ошибок

3. Соответствующая тема на форуме «Цифровой океан»: здесь . Привет, мне трудно понять, чего именно вы пытаетесь достичь. Правильно ли я понимаю, что вы пытаетесь подключиться со своего Kubernetes Pod к какому-либо внешнему серверу, mongodb и у вас также есть Service возможность разрешить стручкам взаимодействовать с этим приложением изнутри кластера?

4. @DawidKruk Да, это именно то, что я пытаюсь сделать. Этот модуль взаимодействует с другими блоками. Но я хочу, чтобы мои данные были у какого-нибудь поставщика управляемых баз данных, такого как mongo-atlas. Монго-Атлас обеспечивает подключение srv . Я считаю, что проблема в том, что модуль не поддерживает связь с Интернетом, поэтому ему не удается подключиться к данной строке подключения. Есть идеи, как это исправить?

5. Основные действия по устранению неполадок должны быть выполнены с вашей стороны, чтобы определить, есть ли у вас проблемы, связанные с разрешением сети/dns или подключением к службе atlas. Сначала, пожалуйста, попробуйте запустить a Pod с любым изображением и попробуйте свернуть внешние сайты, такие как google.com и другие. Если это не сработает, попробуйте пропинговать некоторые IP-адреса, например 8.8.8.8 и т. Д. Здесь вы можете найти официальные документы, которые должны вам помочь: kubernetes.io/docs/tasks/administer-cluster/…