Як з tcpserver і netcat адкрыць тунэль у Kubernetes pod або кантэйнер
Заўв. перав.: Гэтая практычная нататка ад стваральніка LayerCI - выдатная ілюстрацыя так званых tips & tricks для Kubernetes (і не толькі). Прапанаванае тут рашэнне – толькі адно з нямногіх і, мабыць, не самае відавочнае (для некаторых выпадкаў можа падысці ўжо згаданы ў каментарах "родны" для K8s kubectl port-forward). Аднак яно дазваляе як мінімум паглядзець на праблему з пазіцыі прымянення класічных утыліт і іх далейшага камбінавання - адначасова простага, гнуткага і магутнага (гл. "іншыя ідэі" у канцы для натхнення).
Прадстаўце тыповую сітуацыю: вы жадаеце, каб порт на лакальным кампутары чароўнай выявай перанакіроўваў трафік у pod/кантэйнер (ці наадварот).
Магчымыя сцэнары выкарыстання
Праверыць, што вяртае HTTP endpoint /healthz pod'а ў production-кластары.
Падлучыць TCP-адладчык да pod'у на лакальнай машыне.
Атрымаць доступ да production-базе з лакальных прылад для працы з БД без неабходнасці важдацца з аўтэнтыфікацыяй (звычайна ў localhost'а ёсць правы root'а).
Запусціць аднаразовы скрыпт міграцыі для дадзеных у staging-кластары без неабходнасці ствараць для яго кантэйнер.
Падлучыць сесію VNC да pod'у з запушчаным віртуальным працоўным сталом (гл. XVFB).
Некалькі слоў аб неабходных інструментах
Tcpserver - Open Source-ўтыліта, даступная ў большасці рэпазітароў пакетаў Linux. Яна дазваляе адкрыць лакальны порт і перанакіраваць на яго трафік, які атрымліваецца праз stdin/stdout ад любой пазначанай каманды: