У меня есть приложение 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.