Является ли OSBA единственным способом подключения Azure CosmosDB в модуле AKS? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть приложение Java pod, которое подключается к CosmosDB, используя строку подключения по умолчанию.Стручок отлично работает на моем местном мини-кубе.Но при развертывании его на моем AKS возникает исключение соединения.

Модуль продолжает падать с этой ошибкой MongoDB.

Превышено время ожидания после 30000 мс в ожидании совпадения сервера.Клиентское представление состояния кластера ... xxx.documents.azure.com:10255

Похоже, он не может достичь CosmosDB.Сначала я думаю, что это потому, что правила сетевой безопасности по умолчанию блокируют исходящий порт 10255. Затем я добавляю NSG в эту группу ресурсов.Добавьте исходящее правило для порта 10255. Это не решает проблему.

Тогда я натыкаюсь на эту статью. CosmosDB на AKS с использованием OSBA Это единственный способ?мне нужно использовать OSBA для доступа к общедоступной CosmosDB?

Копия строки подключения с портала Azure

mongodb: // mycompany: some_base64_encrypted_stuff@mycompany.documents.azure.com: 10255/? ssl = true & replicaSet = globaldb

журнал ошибок моего модуля

ОБНОВЛЕНИЕ:
получается пружинная загрузка-starter 2.1.0 использует mongodb-драйвер 3.8.2.драйвер mongodb добавляет: 27017 к моей строке подключения.Я обновил его до 3.10.2.Теперь, когда строка подключения верна.Моя программа, работающая в Кубернетесе, дает мне UnknownHostException mydoc.documents.azure.com.Я предполагаю, что может быть проблема, вызванная сборкой образа докера в Windows и последующим запуском его в alpine.

ОБНОВЛЕНИЕ:
Я думаю, что я очень близок к ответу.Проблема из кластера kubernetes.Мой кластер содержит два узла.Я создаю еще один кластер с одним узлом.Разверните на нем мою программу, и она без ошибок подключится к CosmosDB.Но я не знаю, как отлаживать кластер kubernetes.

1 Ответ

0 голосов
/ 31 мая 2019

если вы используете сетевые политики, вы можете использовать пример сетевой политики, чтобы разрешить весь исходящий трафик:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
spec:
  podSelector: {}
  egress:
  - {}
  policyTypes:
  - Egress

Если вы не используете сетевые политики, соединение должно просто работать, вам не нужна OSBA. Вы можете настроить сетевую политику позже, чтобы сделать ее более строгой.

https://kubernetes.io/docs/concepts/services-networking/network-policies/

пс. если вы используете istio с определенными настройками, ваши исходящие запросы также будут блокировать, вам также придется учитывать это

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