Kā atvērt tuneli Kubernetes podā vai konteinerā ar tcpserver un netcat
Piezīme. tulk.: Šī LayerCI izveidotāja praktiskā piezīme lieliski ilustrē tā sauktos padomus un trikus par Kubernetes (un citiem). Šeit piedāvātais risinājums ir tikai viens no retajiem un, iespējams, ne pats acīmredzamākais (dažos gadījumos var būt piemērots komentāros jau minētais “native” K8s kubectl port-forward). Tomēr tas ļauj vismaz paskatīties uz problēmu no klasisko utilītu izmantošanas un tālākas kombinēšanas perspektīvas - tajā pašā laikā vienkārši, elastīgi un spēcīgi (iedvesmai skatiet "citas idejas" beigās).
Iedomājieties tipisku situāciju: vēlaties, lai jūsu vietējās mašīnas ports maģiski pārsūtītu trafiku uz podiņu/konteineru (vai otrādi).
Iespējamie lietošanas gadījumi
Pārbaudiet, ko HTTP galapunkts atgriež /healthz pod ražošanas klasterī.
Iegūstiet piekļuvi ražošanas datu bāzei no vietējiem datu bāzes rīkiem, neapgrūtinot autentifikāciju (parasti vietējam resursdatoram ir root tiesības).
Palaidiet vienreizēju migrācijas skriptu datiem izstādīšanas klasterī, neizveidojot tam konteineru.
Savienojiet VNC sesiju ar podiņu, kurā darbojas virtuālā darbvirsma (skatiet XVFB).
Daži vārdi par nepieciešamajiem instrumentiem
Tcpserver — Atvērtā koda utilīta, kas pieejama lielākajā daļā Linux pakotņu krātuvju. Tas ļauj atvērt vietējo portu un novirzīt trafiku, kas saņemts, izmantojot stdin/stdout, no jebkuras norādītās komandas uz to: