Невозможно получить доступ к БД под внешним IP из приложения

Я создал две вершины кластера Azure Kubernetes 1) Приложение 2) Сервер MS SQL

оба модуля открываются через Azure Loadbalancer и оба имеют внешние IP-адреса. Я не могу использовать Внешний IP в файле конфигурации моего приложения. Но я могу подключить этот SQL-сервер из любого места. По какой-то причине я не могу telnet IP БД из контейнера приложений.

соединение получает тайм-аут. но я могу пинг / телнет IP кластера БД Поэтому я попытался использовать IP-адрес кластера БД в моем конфигурационном файле, чтобы проверить, успешно ли установлено соединение, но не повезло.

Может ли кто-нибудь помочь мне с этим?

3 ответа

Решение

Эта проблема была исправлена ​​..!

Создайте два модуля для приложения и БД. Ранее, когда я указывал IP-адрес кластера БД в файле конфигурации приложения, это работало. Но я смог подключиться к telnet 1433.

Я создал еще один кластер K8s в Azure, а затем попытался с той же настройкой (при условии IP-адреса кластера). На этот раз это сработало как шарм.

Благодаря @ Суреш Вишной

Как сказал Суреш, мы не должны использовать публичный IP-адрес для их подключения.

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

Эта проблема была исправлена ​​другим способом. Но по-прежнему запускать приложение и базу данных в качестве отдельной службы - это ночная кошка в контейнерной службе Azure (Kubernetes).

1) Я скомбинировал App+DB в одном контейнере и поместил строку подключения к БД как "localhost" или "localhost,1433" - это файл конфигурации моего приложения.

2) Создан образ Docker с настройками выше

3) Создан стручок

4) Открытый модуль с двумя портами прослушивания "kubectl Expose pods" xxx "--port = 80,1433 --type = LoadBalancer

5) Я могу получить доступ к БД с 1433

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

Есть ли у кого-то другие мысли о том, какие основные факторы проблемы мы должны учитывать при настройке выше?

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