Zindikirani. transl.: Cholemba chothandiza ichi chochokera kwa omwe adapanga LayerCI ndi chithunzi chabwino kwambiri chazomwe zimatchedwa malangizo & zidule za Kubernetes (ndi zina zambiri). Yankho lomwe laperekedwa pano ndi limodzi mwa ochepa chabe ndipo, mwina, osati lodziwikiratu (nthawi zina, "yachibadwidwe" ya ma K8 omwe atchulidwa kale m'mawu atha kukhala oyenera. kubectl port-forward
Ingoganizirani momwe zimakhalira: mukufuna doko pamakina anu am'deralo kuti lizitumiza modabwitsa magalimoto ku pod/chotengera (kapena mosemphanitsa).
Zotheka kugwiritsa ntchito
- Onani zomwe HTTP endpoint ibwerera
/healthz
pod mu gulu lopanga. - Lumikizani debugger ya TCP ku pod pamakina akomweko.
- Pezani mwayi wopezeka pankhokwe zopangira kuchokera ku zida zam'malo osungiramo zinthu popanda kuvutitsidwa ndi kutsimikizika (nthawi zambiri localhost imakhala ndi maufulu a mizu).
- Thamangani zolembedwa zakusamuka kamodzi kwa data mugulu lamagulu osapanga chidebe.
- Lumikizani gawo la VNC ku pod yomwe ikuyenda pakompyuta (onani XVFB).
Mawu ochepa okhudza zida zofunika
colin@colin-work:~$ tcpserver 127.0.0.1 8080 echo -e 'HTTP/1.0 200 OKrnContent-Length: 19rnrn<body>hello!</body>'&
[1] 17377
colin@colin-work:~$ curl localhost:8080
<body>hello!</body>colin@colin-work:~$
Netcat imachita zosiyana. Zimakupatsani mwayi wolumikizana ndi doko lotseguka ndikudutsa I/O yomwe idalandilidwa kuchokera pamenepo kupita ku stdin/stdout:
colin@colin-work:~$ nc -C httpstat.us 80
GET /200 HTTP/1.0
Host: httpstat.us
HTTP/1.1 200 OK
Cache-Control: private
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.1
Access-Control-Allow-Origin: *
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=93fdbab9d364704de8ef77182b4d13811344b7dd1ec45d3a9682bbd6fa154ead;Path=/;HttpOnly;Domain=httpstat.us
Date: Fri, 01 Nov 2019 17:53:04 GMT
Connection: close
Content-Length: 0
^C
colin@colin-work:~$
Muchitsanzo pamwambapa, netcat imapempha tsambali pa HTTP. Mbendera -C
zimapangitsa kuti iwonjezere CRLF mpaka kumapeto kwa mzere.
Kulumikizana ndi kubectl: mverani wolandirayo ndikulumikizana ndi pod
Tikaphatikiza zida zomwe zili pamwambapa ndi kubectl, timalandila lamulo monga ili:
tcpserver 127.0.0.1 8000 kubectl exec -i web-pod nc 127.0.0.1 8080
Mwa fanizo, kulowa doko 80 mkati mwa pod kudzakhala kokwanira kuchita curl "127.0.0.1:80"
:
colin@colin-work:~$ sanic kubectl exec -it web-54dfb667b6-28n85 bash
root@web-54dfb667b6-28n85:/web# apt-get -y install netcat-openbsd
Reading package lists... Done
Building dependency tree
Reading state information... Done
netcat-openbsd is already the newest version (1.195-2).
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
root@web-54dfb667b6-28n85:/web# exit
colin@colin-work:~$ tcpserver 127.0.0.1 8000 sanic kubectl exec -i web-54dfb667b6-28n85 nc 127.0.0.1 8080&
[1] 3232
colin@colin-work:~$ curl localhost:8000/healthz
{"status":"ok"}colin@colin-work:~$ exit
Chiwonetsero chothandizira
Kumbali ina: mvetserani mu pod ndikugwirizanitsa ndi wolandira
nc 127.0.0.1 8000 | kubectl exec -i web-pod tcpserver 127.0.0.1 8080 cat
Lamuloli limalola kuti pod ipeze doko 8000 pamakina akomweko.
Bash script
Ndinalemba zolemba zapadera za Bash zomwe zimakupatsani mwayi wowongolera gulu la Kubernetes kupanga
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"
}
Ngati muwonjezera ntchitoyi ~/.bashrc
, mutha kutsegula tunnel mu pod ndi lamulo kubetunnel web-pod 8080
ndi kuchita curl localhost:6666
.
- Kwa tunnel mu Docker mutha kusintha mzere waukulu ndi:
tcpserver 127.0.0.1 6666 docker exec -i "$CONTAINER" nc 127.0.0.1 "$DESTPORT"
- kwa tunnel K3 ndi -kusintha kukhala:
tcpserver 127.0.0.1 6666 k3s kubectl exec β¦
- ndi zina zotero.
Malingaliro ena
- Mutha kuwongolera magalimoto a UDP pogwiritsa ntchito malamulowo
netcat -l -u -c
mmalo mwatcpserver
ΠΈnetcat -u
mmalo mwanetcat
motero. - Onani I/O kudzera pa pipe viewer:
nc 127.0.0.1 8000 | pv --progress | kubectl exec -i web-pod tcpserver 127.0.0.1 8080 cat
- Mutha kupondereza ndikuchepetsa kuchuluka kwa magalimoto kumbali zonse ziwiri pogwiritsa ntchito
gzip
. - Lumikizani kudzera pa SSH ku kompyuta ina ndi fayilo yofananira
kubeconfig
:tcpserver ssh workcomputer "kubectl exec -i my-pod nc 127.0.0.1 80"
- Mutha kulumikiza ma pod awiri m'magulu osiyanasiyana pogwiritsa ntchito
mkfifo
ndikuyendetsa malamulo awiri osiyanakubectl
.
Mwayi ndi zopanda malire!
PS kuchokera kwa womasulira
Werenganinso pa blog yathu:
- Β«
Zida zopangira mapulogalamu omwe akuyendetsa Kubernetes "; - Β«
Malangizo & zidule za Kubernetes: za chitukuko chakomweko ndi Telepresence "; - Β«
kubectl-debug plugin yochotsa zolakwika mu Kubernetes pods "; - Β«
Zothandiza pogwira ntchito ndi Kubernetes ".
Source: www.habr.com