Как получить доступ к MySQL, запущенному в док-контейнере (управляемом Rancher), без публикации порта на хосте? - PullRequest
0 голосов
/ 19 февраля 2019

Я использую Rancher для управления Kubernetes, который управляет моими контейнерами Docker.

Каждый из наших микросервисов (работающих в контейнере), для которых требуется постоянство, имеет соответствующий контейнер MySQL.Например, MyApp работает в контейнере с именем MyApp и сохраняется в контейнере MySQL с именем MySQL-MyApp.

У нас их много.Мы не хотим определять, на каких узлах работают контейнеры MySQL, и поэтому не можем публиковать / выставлять порт на хосте, если он конфликтует с любыми другими портами на этом хосте.

Однако, если что-точто-то не так с некоторыми данными для одного из наших микросервисов, нам нужно иметь доступ к экземпляру MySQL в соответствующем контейнере, используя MySQL Workbench для просмотра / редактирования данных в базе данных с внешнего компьютера в нашей физической сети.

Есть идеи, как нам поступить?Можем ли мы каким-то образом временно открыть / опубликовать порт на лету для работающего контейнера MySQL, чтобы мы могли подключиться к нему через MySQL Workbench, или есть другие способы сделать это?

1 Ответ

0 голосов
/ 19 февраля 2019

Если пользователи имеют доступ к командной строке kubectl для кластера, они могут настроить временную переадресацию порта между локальной машиной разработки и модулем, в котором находится ваш контейнер MySQL.

Например, где mypod-765d459796-258hz - это модуль, и вы хотите подключиться к порту 3306 этого модуля:

kubectl port-forward mypod-765d459796-258hz 12345:3306

Затем вы можете подключить MySQL Workbench к localhost:12345 и он отправит ваш контейнер MySQL в Kubernetes.

...