Невозможно подключиться к атласу mongodb из кластера kubernetes

Привет всем! Я не могу подключиться к базе данных mongo atlas в качестве службы вне кластера kubernetes из моего кластера kubernetes.

Вот шаги, которые я следовал.

В моем коде в nodejs используется dbUri= 'mongodb:// имя пользователя: пароль' + process.env.MONGO_URL + '/ database-name'

Вот конфиг службы ip кластера

kind: Service
apiVersion: v1
metadata:
  name: mongo-cluster-ip-service
spec:
  type: ClusterIP
  ports:
  - port: 27017
    targetPort: 27017

тогда у меня есть конечные точки для того же сервиса

kind: Endpoints
apiVersion: v1
metadata:
  name: mongo-cluster-ip-service
subsets:
  - addresses:
    - ip: 35.187.27.116
    ports:
    - port: 27017
  - addresses:
    - ip: 35.241.213.79
    ports:
    - port: 27017
  - addresses:
    - ip: 104.155.120.154
    ports:
    - port: 27017

Затем у меня есть мое развертывание, которое хочет использовать его для модулей через переменную env

apiVersion: apps/v1
kind: Deployment
metadata:
  name: user-reg-auth-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: user-reg-auth
  template:
    metadata:
      labels:
        app: user-reg-auth
    spec:
      imagePullSecrets:
        - name: ofinowregcred # this is a manually applied secret to the cluster using kubectl create secret
      containers:
      - name: user-reg-auth
        image: ofinow/user-reg-auth
        ports:
        - containerPort: 8080
        # resources:
        #   requests:
        #     memory: "64Mi"
        #     cpu: "250m"
        #   limits:
        #     memory: "128Mi"
        #     cpu: "500m"
        env:
          - name: MONGO_URL
            value: mongo-cluster-ip-service

Теперь проблема в том, что mongo-cluster-ip-service не решается, поэтому я не могу подключиться. прошу помощи

Я следовал руководству по лучшим практикам Google https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-mapping-external-services

0 ответов

Попробуйте любой из них;

решение А

  1. Добавьте конечную точку кластера Kubernetes в белый список IP-адресов доступа к сети MongoDB.

  2. Под спецификацией модуля вашего манифеста модуля k8s (или развертывания) добавьте поле dnsPolicy со значением по умолчанию. Следовательно, ваши поды (в основном ваш контейнер) будут подключаться к mongo через конфигурацию разрешения имен главного узла.

раствор B

  1. Добавьте все конечные точки узлов в кластере k8s в белый список IP-адресов доступа к сети MongoDB.

  2. В спецификации модуля вашего манифеста модуля k8s (или развертывания) добавьте поле dnsPolicy со значением, установленным в ClusterFirstWithHostNet. Поскольку модули работают с вашей хост-сетью, они получают доступ к службам, прослушивающим локальный хост.

Другие вопросы по тегам