У меня есть микросервис springboot, работающий внутри контейнера докеров (Kubernetes), который может получать доступ к неуправляемым службам (SQL, Elasticsearch и т. д.), которые недоступны с моего ноутбука напрямую, поэтому я вынужден запускать команды через kubectl для доступа к ним. Есть ли возможность перенаправлять TCP-соединения через контейнеры докеров, чтобы обеспечить прямой доступ к этим службам, что-то вроде переадресации портов ssh?
Да, вы можете использовать kubectl port-forward
, чтобы сделать именно это. Если вы хотите прочитать документацию, это здесь.
Для этого вам нужно создать"service without selector"
и определитьendpoints
для ваших "внешних" ресурсов
Документ Kubernetes по таким сервисам здесь
Конечно, ваш сервис может быть типа"NodePort"
, поэтому с помощью вашего балансировщика нагрузки перед OCP вы можете получить доступ к сервису из-за пределов вашего кластера, и сервис будет достигать вашего внешнего ресурса.
Службы, о которых я говорю, не работают в модулях, а подключены через сеть, которая доступна из модуля, но не с моей машины разработки.