Kubernetes - подключение к удаленному серверу базы данных через ssh

Мы находимся в процессе миграции нашего веб-приложения на модель распределенного приложения с использованием gcloud / docker / K8. У нас есть удаленный сервер базы данных, который настроен на прием соединений только с другого удаленного сервера, т.е. чтобы получить доступ к этой базе данных, вам нужно сначала ssh на один сервер, используя имя пользователя и пароль, а затем подключиться к базе данных через имя хоста MySQL с обычным пользователем. и пароль. Мы очень сильно ударяли в Google, пытаясь выяснить, как мы могли бы настроить наши поды K8 для установления этого соединения, и кажется, что существует много разных подходов, которые работают с мог бы, но пока нет задокументированного способа "уверенного огня". Наши микросервисы написаны на Lumen и могут успешно подключаться к нашей dev db, которая также является удаленной, но не ssh. Что может быть нашим лучшим подходом? Пытаться настроить Dockerfile для вывода модулей по ssh? Или мы должны попытаться подключить службу K8 к базе данных и подключить к ней модули?

Я бы определенно выбрал сервисы K8S и Ingress.

Mornor 26.10.2018 13:17
0
1
961
1

Ответы 1

У вас есть три варианта:

  1. Измените конфигурацию сетевого уровня, чтобы разрешить удаленный доступ с ваших «выходных адресов» узлов Kubernetes. Также известный как «пробивание дыры в брандмауэре» - это, вероятно, не вариант, но если это так, то это самое простое решение.
  2. Установите «туннельное» соединение между вашим узлом (ами) и сервером базы данных, используя туннель ssh - не очень надежный, подверженный проблемам с сетевым подключением и восстановлением.
  3. Разверните openvpn на сервере базы данных (или на узле в той же подсети) и запустите vpn-клиент (можно сделать и с openvpn) в подсети POD узлов - надежно, безопасно, немного работы, но выполнимо и устойчиво. См. https://github.com/mateothegreat/k8-byexamples-openvpn для полного сквозного примера с документацией.

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

Похожие вопросы