ProHoster > Blog > administratë > Si të hapni një tunel në një pod ose enë Kubernetes me tcpserver dhe netcat
Si të hapni një tunel në një pod ose enë Kubernetes me tcpserver dhe netcat
Shënim. përkth.: Ky shënim praktik nga krijuesi i LayerCI është një ilustrim i shkëlqyer i të ashtuquajturave këshilla dhe truket për Kubernetes (dhe më shumë). Zgjidhja e propozuar këtu është vetëm një nga të paktat dhe, ndoshta, jo më e dukshme (për disa raste, ajo "vendase" për K8 e përmendur tashmë në komente mund të jetë e përshtatshme kubectl port-forward). Sidoqoftë, ju lejon të paktën ta shikoni problemin nga këndvështrimi i përdorimit të shërbimeve klasike dhe kombinimit të mëtejshëm të tyre - në të njëjtën kohë të thjeshta, fleksibël dhe të fuqishëm (shih "idetë e tjera" në fund për frymëzim).
Imagjinoni një situatë tipike: dëshironi një port në makinën tuaj lokale për të përcjellë trafikun në mënyrë magjike në një pod/konteiner (ose anasjelltas).
Rastet e mundshme të përdorimit
Kontrolloni se çfarë kthen pika përfundimtare HTTP /healthz pod në grupin e prodhimit.
Lidhni një korrigjues TCP me podin në makinën lokale.
Merrni akses në bazën e të dhënave të prodhimit nga mjetet lokale të bazës së të dhënave pa pasur nevojë të shqetësoheni me vërtetimin (zakonisht localhost ka të drejta rrënjësore).
Ekzekutoni një skript migrimi një herë për të dhënat në një grupim skenik pa pasur nevojë të krijoni një kontejner për të.
Lidhni një sesion VNC me një pod që drejton një desktop virtual (shih XVFB).
Disa fjalë për mjetet e nevojshme
Tcpserver — Një mjet me burim të hapur i disponueshëm në shumicën e depove të paketave Linux. Kjo ju lejon të hapni një port lokal dhe të ridrejtoni trafikun e marrë nëpërmjet stdin/stdout nga çdo komandë e specifikuar në të:
Kjo komandë lejon podin të hyjë në portin 8000 në makinën lokale.
Skenari Bash
Unë shkrova një skenar të veçantë për Bash që ju lejon të menaxhoni një grup prodhimi Kubernetes ShtresaCIduke përdorur metodën e përshkruar më sipër:
kubetunnel() {
POD="$1"
DESTPORT="$2"
if [ -z "$POD" -o -z "$DESTPORT" ]; then
echo "Usage: kubetunnel [pod name] [destination port]"
return 1
fi
pkill -f 'tcpserver 127.0.0.1 6666'
tcpserver 127.0.0.1 6666 kubectl exec -i "$POD" nc 127.0.0.1 "$DESTPORT"&
echo "Connect to 127.0.0.1:6666 to access $POD:$DESTPORT"
}
Nëse e shtoni këtë funksion në ~/.bashrc, mund të hapni lehtësisht një tunel në një pod me komandën kubetunnel web-pod 8080 dhe bëni curl localhost:6666.
Për tunelin në prerës ju mund të zëvendësoni linjën kryesore me: