ProHoster > blog > Utawala > Jinsi ya kufungua handaki kwenye ganda la Kubernetes au chombo chenye tcpserver na netcat
Jinsi ya kufungua handaki kwenye ganda la Kubernetes au chombo chenye tcpserver na netcat
Kumbuka. tafsiri.: Dokezo hili la vitendo kutoka kwa mtayarishaji wa LayerCI ni kielelezo bora cha kile kinachojulikana kama vidokezo na hila za Kubernetes (na zaidi). Suluhisho lililopendekezwa hapa ni moja tu ya wachache na, labda, sio dhahiri zaidi (kwa baadhi ya matukio, "asili" ya K8 tayari imetajwa kwenye maoni inaweza kufaa. kubectl port-forward) Walakini, hukuruhusu angalau kutazama shida kutoka kwa mtazamo wa kutumia huduma za kitamaduni na kuzichanganya zaidi - wakati huo huo ni rahisi, rahisi na yenye nguvu (angalia "maoni mengine" mwishoni kwa msukumo).
Hebu fikiria hali ya kawaida: unataka bandari kwenye mashine yako ya karibu ili kusambaza trafiki kwa njia ya kichawi kwenye ganda/chombo (au kinyume chake).
Kesi zinazowezekana za matumizi
Angalia kile sehemu ya mwisho ya HTTP inarudi /healthz ganda katika nguzo ya uzalishaji.
Unganisha kitatuzi cha TCP kwenye ganda kwenye mashine ya ndani.
Pata ufikiaji wa hifadhidata ya uzalishaji kutoka kwa zana za hifadhidata za ndani bila kusumbua na uthibitishaji (kwa kawaida localhost huwa na haki za mizizi).
Tekeleza hati ya uhamishaji ya mara moja kwa data katika nguzo ya hatua bila kulazimika kuunda chombo kwa ajili yake.
Unganisha kipindi cha VNC kwenye ganda linaloendesha kompyuta ya mezani (angalia XVFB).
Maneno machache kuhusu zana muhimu
Tcpserver - Huduma ya Open Source inapatikana katika hazina nyingi za kifurushi cha Linux. Inakuruhusu kufungua bandari ya ndani na kuelekeza trafiki iliyopokelewa kupitia stdin/stdout kutoka kwa amri yoyote iliyoainishwa kwake:
Amri hii inaruhusu pod kufikia bandari 8000 kwenye mashine ya ndani.
Hati ya bash
Niliandika hati maalum ya Bash ambayo hukuruhusu kudhibiti kikundi cha uzalishaji cha Kubernetes TabakaCIkwa kutumia njia iliyoelezwa hapo juu:
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"
}
Ukiongeza kitendakazi hiki kwa ~/.bashrc, unaweza kufungua handaki kwa urahisi kwenye ganda kwa amri kubetunnel web-pod 8080 na kufanya curl localhost:6666.
Kwa handaki ndani Docker unaweza kubadilisha mstari kuu na: