Проблема с тайм-аутом соединения при переадресации портов в Kubernetes?

Я запускаю кластер k8 на Docker для Mac. Чтобы разрешить подключение моего клиента базы данных к моему модулю mysql, я использую следующую команду kubectl port-forward mysql-0 3306:3306. Он отлично работает, однако через несколько часов я получаю следующую ошибку E0201 18:21:51.012823 51415 portforward.go:233] lost connection to pod.

Я проверяю фактический модуль mysql, и он все еще работает. Это происходит каждый раз, когда я запускаю команду port-forward.

Я видел здесь следующий ответ: проблема тайм-аута переадресации порта kubectl, и решение использовать следующий флаг --streaming-connection-idle-timeout=0, но теперь этот флаг устарел.

Итак, следуя оттуда, похоже, что мне нужно установить этот параметр через файл конфигурации kubelet (файл конфигурации)? Я не уверен, как мне этого добиться, поскольку Docker для Mac работает как демон, и я не запускаю кластер вручную.

Может ли кто-нибудь прислать мне пример кода или инструкции о том, как я могу настроить kubectl для установки этого флага, чтобы у моей переадресации портов не было тайм-аутов?


person thatguyjono    schedule 01.02.2020    source источник
comment
Вы должны запустить свой клиент базы данных внутри кластера или, если вы не можете этого сделать, открыть базу данных, используя что-то вроде службы NodePort. kubectl port-forward не предназначен для постоянного подключения к кластеру.   -  person David Maze    schedule 01.02.2020
comment
Документация предлагает установить этот флаг на 0, чтобы установить постоянное соединение? Знаете ли вы, как я мог добиться этого?   -  person thatguyjono    schedule 01.02.2020


Ответы (1)


Перенаправление портов обычно предназначено для краткосрочной отладки, а не для «часов». То, что вам, вероятно, нужно, — это служба типа NodePort, к которой вы затем можете подключиться напрямую.

person coderanger    schedule 01.02.2020