Невозможно получить доступ к БД под внешним 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
В приведенной выше настройке мы планировали сохранить контейнер в автоматически масштабируемой среде с постоянным хранилищем томов. Также мы планируем сделать запланированное резервное копирование контейнера, поэтому мы не хотим терять данные БД.
Есть ли у кого-то другие мысли о том, какие основные факторы проблемы мы должны учитывать при настройке выше?