Mysql удаленного подключения через SSH к kubernetes pod

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

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

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

мой вопрос, как я могу удаленно подключить приложения, такие как: Navicat - Sequel Pro или MySQL Workbench к этому модулю?

2 ответа

Решение

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 

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

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

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

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

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