Я использую Rancher для управления Kubernetes, который управляет моими контейнерами Docker.
У каждого из наших микросервисов (работающих в контейнере), требующих постоянства, есть соответствующий контейнер MySQL. Например. MyApp работает в контейнере MyApp и сохраняется в контейнере MySQL с именем MySQL-MyApp.
У нас много таких. Мы не хотим определять, на каких узлах работают контейнеры MySQL, и поэтому не можем публиковать/открывать порт на хосте, если он конфликтует с любыми другими портами на этом хосте.
Однако, если что-то пойдет не так с некоторыми данными для одного из наших микросервисов, нам необходимо иметь доступ к экземпляру MySQL в соответствующем контейнере с помощью MySQL Workbench для просмотра/редактирования данных в базе данных с внешнего компьютера в нашей физической сети.
Есть идеи, как мы будем это делать? Можем ли мы каким-то образом временно открыть/опубликовать порт на лету для работающего контейнера MySQL, чтобы мы могли подключиться к нему через MySQL Workbench, или есть другие способы сделать это?






Если у пользователей есть доступ к командной строке kubectl для кластера, они могут настроить временный портфорвард между локальным компьютером разработки и модулем, содержащим ваш контейнер MySQL.
Например, где mypod-765d459796-258hz — это модуль, и вы хотите подключиться к порту 3306 этого модуля:
kubectl port-forward mypod-765d459796-258hz 12345:3306
Затем вы можете подключить MySQL Workbench к localhost:12345, и он будет перенаправлен в ваш контейнер MySQL в Kubernetes.