ProHoster > ΠΠ»ΠΎΠ³ > Administrasi > Cara mbukak trowongan ing pod utawa wadhah Kubernetes nganggo tcpserver lan netcat
Cara mbukak trowongan ing pod utawa wadhah Kubernetes nganggo tcpserver lan netcat
Cathetan. nerjemahake.: Cathetan praktis saka pangripta LayerCI iki minangka ilustrasi sing apik babagan tips & trik kanggo Kubernetes (lan liya-liyane). Solusi sing diusulake ing kene mung salah siji saka sawetara lan, mbok menawa, ora paling jelas (kanggo sawetara kasus, "native" kanggo K8s sing wis kasebut ing komentar bisa uga cocog. kubectl port-forward). Nanging, ngidini sampeyan paling sethithik ndeleng masalah saka perspektif nggunakake utilitas klasik lan luwih nggabungake - ing wektu sing padha prasaja, fleksibel lan kuat (ndeleng "ide liyane" ing pungkasan kanggo inspirasi).
Mbayangno kahanan sing khas: sampeyan pengin port ing mesin lokal sampeyan bisa nerusake lalu lintas menyang pod / wadhah (utawa kosok balene).
Kasus panggunaan sing bisa ditindakake
Priksa apa sing ngasilake titik pungkasan HTTP /healthz pod ing kluster produksi.
Sambungake debugger TCP menyang pod ing mesin lokal.
Entuk akses menyang basis data produksi saka alat basis data lokal tanpa kudu repot karo otentikasi (biasane localhost duwe hak root).
Jalanake skrip migrasi siji-wektu kanggo data ing kluster pementasan tanpa kudu nggawe wadhah kasebut.
Sambungake sesi VNC menyang pod sing nganggo desktop virtual (pirsani XVFB).
Sawetara tembung babagan alat sing dibutuhake
Tcpserver - Utilitas Open Source kasedhiya ing paling repositori paket Linux. Ngidini sampeyan mbukak port lokal lan ngarahake lalu lintas sing ditampa liwat stdin/stdout saka prentah sing ditemtokake:
Printah iki ngidini pod ngakses port 8000 ing mesin lokal.
Skrip Bash
Aku nulis skrip khusus kanggo Bash sing ngidini sampeyan ngatur klompok produksi Kubernetes LapisanCInggunakake metode kasebut ing ndhuwur:
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"
}
Yen sampeyan nambah fungsi iki kanggo ~/.bashrc, sampeyan bisa kanthi gampang mbukak trowongan ing pod kanthi printah kubetunnel web-pod 8080 lan nindakake curl localhost:6666.
Kanggo trowongan ing docker sampeyan bisa ngganti baris utama karo: