Я создал управляемую базу данных Postgres в Google Cloud. Эта база данных получила внешний IP-адрес.
На втором этапе я создал кластер Kubernetes.
В k8s я хочу получить доступ к этой внешней базе данных. Поэтому я создал сервис без селектора меток, но с внешней конечной точкой, указывающей на мою базу данных Postgres.
Мне пришлось разрешить базе данных Postgres получать доступ от (трех) узлов кластера. Я настроил это в Google Cloud Console (SQL).
Мой первый вопрос: это правильный способ интеграции внешней базы данных? Особенно эта конфигурация IP-доступа?
Для проверки моего соединения с базой данных моей первой попыткой было установить переадресацию портов с моего локального хоста. Моя идея состояла в том, чтобы получить доступ к этой базе данных через мою Database-IDE (datagrip). Однако при попытке установить переадресацию порта я получаю следующую ошибку:
error: cannot attach to *v1.Service: invalid service 'postgres-bla-bla': Service is defined without a selector
Второй вопрос: как получить доступ к этой услуге локально?
На третьем шаге я создал модуль с docker-образом 'partlab / ubuntu-postgresql'. Я выполнил команду 'kctrl exec -it ...' и смог получить доступ к своей базе данных Postgres с помощью
psql -h postgres-bla-bla ...
Так что в основном это работает. Но я уверен, что у моего решения есть некоторые недостатки.
Что я могу сделать лучше? Как решить проблему из вопроса 2?