Удаленное подключение mysql через ssh к модулю Kubernetes

Многие DevOps используют mysql connect через ssh для доступа к производственной базе данных по разным причинам и запросам.

После успешного развертывания контейнера mysql в кластере digital ocean kubernetes я смогу подключиться к модулю по ssh через:

kubectl --kubeconfig="kubeconfig.yaml" exec -it vega-mysql-5df9b745f9-c6859 -c vega-mysql -- /bin/bash

мой вопрос: как я могу удаленно подключить такие приложения, как: navicat - sequel pro или mysql workbench, к этому модулю?


person Sina Miandashti    schedule 22.12.2018    source источник


Ответы (2)


Nitpick: даже если вы можете использовать его для запуска интерактивной оболочки, kubectl exec - это не то же самое, что SSH. По этой причине обычные клиенты MySQL, поддерживающие туннелированные SSH-соединения, не поддерживают (и, вероятно, никогда не будут) поддерживать подключение к серверу MySQL, туннелируемому через kubectl exec.

Альтернативное решение: используйте kubectl port-forward, чтобы перенаправить порт 3306 сервера MySQL Pod на ваш локальный компьютер:

kubectl port-forward vega-mysql-5df9b745f9-c6859 3306:3306

Это проинструктирует kubectl действовать как TCP-прокси от локального порта на вашем компьютере в Pod. Затем подключитесь к 127.0.0.1:3306 с любым клиентом MySQL по вашему выбору:

mysql -u youruser -p -h 127.0.0.1 
person helmbert    schedule 22.12.2018
comment
хорошо, я отправлю свое решение на - person Sina Miandashti; 24.12.2018

Я добился этого, предоставив mysql службе со случайным портом

kubectl --kubeconfig=vega-kubeconfig.yaml expose deployment mysqldeployment --type=NodePort --name=nginx --port=3306 --target-port=3306

И подключиться к нему через моего клиента без туннеля ssh.

но решение @helmbert тоже хорошо

person Sina Miandashti    schedule 24.12.2018
comment
Хотя это действительно работает, вы должны помнить, что вы должны делать это только тогда, когда у вас настроен SSL для вашего сервера MySQL (в идеале, с ssl-mode=required) или ваш NodePort доступен только из сети, которой вы полностью доверяете. В противном случае вы можете отправить свои учетные данные MySQL через Интернет в виде открытого текста. - person helmbert; 24.12.2018