Mysql удаленного подключения через SSH к kubernetes pod - PullRequest
0 голосов
/ 22 декабря 2018

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

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

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

и подключившись к ней через мой клиент без ssh-туннеля.

, но решение @helmbert также хорошо

0 голосов
/ 23 декабря 2018

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

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

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 
...