เดเตเดฑเดฟเดชเตเดชเต. เดตเดฟเดตเตผเดคเตเดคเดจเด.: LayerCI เดฏเตเดเต เดธเตเดฐเดทเตเดเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด เดชเตเดฐเดพเดฏเตเดเดฟเด เดเตเดฑเดฟเดชเตเดชเต, เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเตเดณเตเดณ เดจเตเดฑเตเดเตเดเตเดเดณเตเด เดคเดจเตเดคเตเดฐเดเตเดเดณเตเด (เดเตเดเตเดคเตฝ เดเตเดเตเดคเตฝ) เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดฎเดฟเดเดเตเด เดเดฟเดคเตเดฐเตเดเดฐเดฃเดฎเดพเดฃเต. เดเดตเดฟเดเต เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดชเดฐเดฟเดนเดพเดฐเด เดเตเดฐเตเดเตเดเด เดเดฟเดฒเดคเดฟเตฝ เดเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต, เดเดฐเตเดชเดเตเดทเต, เดเดฑเตเดฑเดตเตเด เดตเตเดฏเดเตเดคเดฎเดฒเตเดฒ (เดเดฟเดฒ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ, เด
เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเตฝ เดเดคเดฟเดจเดเด เดชเดฐเดพเดฎเตผเดถเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ K8 เดเตพเดเตเดเตเดณเตเดณ "เดจเตเดฑเตเดฑเตเดตเต" เด
เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏเตเดเตเดเดพเด kubectl port-forward
เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดธเดพเดนเดเดฐเตเดฏเด เดธเดเตเดเตฝเดชเตเดชเดฟเดเตเดเตเด: เดเดฐเต เดชเตเดกเต/เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดฒเตเดเตเดเต (เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดคเดฟเดฐเดฟเดเตเดเตเด) เดเตเดฐเดพเดซเดฟเดเต เดฎเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดซเตเตผเดตเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเดพเดฆเตเดถเดฟเด เดฎเตเดทเตเดจเดฟเตฝ เดเดฐเต เดชเตเตผเดเตเดเต เดตเตเดฃเด.
เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดชเดฏเตเด เดเตเดธเตเดเตพ
- HTTP เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเต เดเดจเตเดคเดพเดฃเต เดจเตฝเดเตเดจเตเดจเดคเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด
/healthz
เดชเตเดฐเตเดกเดเตเดทเตป เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดชเตเดกเต. - เดฒเตเดเตเดเตฝ เดฎเตเดทเตเดจเดฟเดฒเต เดชเตเดกเดฟเดฒเตเดเตเดเต เดเดฐเต TCP เดกเตเดฌเดเตเดเตผ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด.
- เดชเตเดฐเดพเดฆเตเดถเดฟเด เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดชเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดงเดฟเดเดพเดฐเดฟเดเดค เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดชเตเดฐเตเดกเดเตเดทเตป เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดเดเตเดธเดธเต เดจเตเดเตเด (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฒเตเดเตเดเตฝ เดนเตเดธเตเดฑเตเดฑเดฟเดจเต เดฑเตเดเตเดเต เด เดตเดเดพเดถเดเตเดเดณเตเดฃเตเดเต).
- เดเดฐเต เดเดฃเตเดเตเดฏเตโเดจเตผ เดธเตเดทเตโเดเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดเดฐเต เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเตโเดเตเดเดพเดฏเดฟ เดเดฑเตเดฑเดคเตเดคเดตเดฃ เดฎเตเดเตเดฐเตเดทเตป เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด.
- เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดกเตเดธเตเดเตเดเตเดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดกเดฟเดฒเตเดเตเดเต เดเดฐเต VNC เดธเตเดทเตป เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด (XVFB เดเดพเดฃเตเด).
เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดชเดเดฐเดฃเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เดเตเดฑเดเตเดเต เดตเดพเดเตเดเตเดเตพ
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:~$
เดจเตเดฑเตเดฑเตเดเดพเดฑเตเดฑเต เดจเตเดฐเต เดตเดฟเดชเดฐเตเดคเดฎเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต. เดเดฐเต เดคเตเดฑเดจเตเดจ เดชเตเตผเดเตเดเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเดจเตเด เด เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเด I/O 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:~$
เดฎเตเดเดณเดฟเดฒเต เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, netcat HTTP เดตเดดเดฟ เดชเตเดเต เด
เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเดจเตเดจเต. เดชเดคเดพเด -C
เดตเดฐเดฟเดฏเตเดเต เด
เดตเดธเดพเดจเดคเตเดคเดฟเตฝ CRLF เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเดพเตป เดเดคเต เดเดพเดฐเดฃเดฎเดพเดเตเดจเตเดจเต.
kubectl-เดฎเดพเดฏเดฟ เดเดฃเดเตเดทเตป: เดนเตเดธเตเดฑเตเดฑเดฟเตฝ เดเตเดเตเดเต เดชเตเดกเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเด
เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเตเดณเตเดเตพ kubectl-เดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตฝ, เดจเดฎเตเดเตเดเต เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฐเต เดเดฎเดพเตปเดกเต เดฒเดญเดฟเดเตเดเตเด:
tcpserver 127.0.0.1 8000 kubectl exec -i web-pod nc 127.0.0.1 8080
เดธเดพเดฎเตเดฏเดฎเดจเตเดธเดฐเดฟเดเตเดเต, เดชเตเดกเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเตเตผเดเตเดเต 80 เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดคเต เดเตเดฏเตเดคเดพเตฝ เดฎเดคเดฟเดฏเดพเดเตเด 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
เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดจเตเดฑเดฑเดพเดเตเดทเตป เดกเดฏเดเตเดฐเด
เดตเดฟเดชเดฐเตเดค เดฆเดฟเดถเดฏเดฟเตฝ: เดชเตเดกเดฟเตฝ เดเตเตพเดเตเดเตเดเดฏเตเด เดนเตเดธเตเดฑเตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด
nc 127.0.0.1 8000 | kubectl exec -i web-pod tcpserver 127.0.0.1 8080 cat
เดฒเตเดเตเดเตฝ เดฎเตเดทเตเดจเดฟเตฝ เดชเตเตผเดเตเดเต 8000 เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเตป เด เดเดฎเดพเตปเดกเต เดชเตเดกเดฟเดจเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดฌเดพเดทเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต
เดเดฐเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดชเตเดฐเตเดกเดเตเดทเตป เดเตเดฒเดธเตเดฑเตเดฑเตผ เดฎเดพเดจเตเดเต เดเตเดฏเตเดฏเดพเตป เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเดพเตป เดฌเดพเดทเดฟเดจเดพเดฏเดฟ เดเดดเตเดคเดฟ
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"
}
เดจเดฟเดเตเดเตพ เด เดซเดเดเตเดทเตป เดเตเตผเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ ~/.bashrc
, เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดเดฐเต เดชเตเดกเดฟเตฝ เดเดฐเต เดคเตเดฐเดเตเดเด เดคเตเดฑเดเตเดเดพเตป เดเดดเดฟเดฏเตเด kubetunnel web-pod 8080
เดเตเดฏเตเดฏเตเด curl localhost:6666
.
- เดคเตเดฐเดเตเดเดคเตเดคเดฟเดจเดพเดฏเดฟ เดกเตเดเตเดเตผ เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดฐเดงเดพเดจ เดฒเตเตป เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเดพเด:
tcpserver 127.0.0.1 6666 docker exec -i "$CONTAINER" nc 127.0.0.1 "$DESTPORT"
- เดคเตเดฐเดเตเดเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ K3s - เดเดคเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเด:
tcpserver 127.0.0.1 6666 k3s kubectl exec โฆ
- เด เดคเตเดชเตเดฒเต.
เดฎเดฑเตเดฑเต เดเดถเดฏเดเตเดเตพ
- เดเดฎเดพเตปเดกเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต UDP เดเตเดฐเดพเดซเดฟเดเต เดฑเตเดกเดฏเดฑเดเตเดเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด
netcat -l -u -c
เดชเดเดฐเดtcpserver
ะธnetcat -u
เดชเดเดฐเดnetcat
เดฏเดฅเดพเดเตเดฐเดฎเด - เดชเตเดชเตเดชเต เดตเตเดฏเตเดตเตผ เดตเดดเดฟ I/O เดเดพเดฃเตเด:
nc 127.0.0.1 8000 | pv --progress | kubectl exec -i web-pod tcpserver 127.0.0.1 8080 cat
- เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดฐเดฃเตเดเดฑเตเดฑเดคเตเดคเตเด เดเตเดฐเดพเดซเดฟเดเต เดเดเดชเตเดฐเดธเตเดธเตเดเตเดฏเตเดฏเดพเดจเตเด เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด
gzip
. - เด
เดจเตเดฌเดจเตเดง เดซเดฏเดฒเตเดฎเดพเดฏเดฟ เดฎเดฑเตเดฑเตเดฐเต เดเดฎเตเดชเตเดฏเตเดเตเดเดฑเดฟเดฒเตเดเตเดเต SSH เดตเดดเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด
kubeconfig
:tcpserver ssh workcomputer "kubectl exec -i my-pod nc 127.0.0.1 80"
- เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเดณเดฟเตฝ เดฐเดฃเตเดเต เดชเตเดกเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด
mkfifo
เดเตเดเดพเดคเต เดฐเดฃเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดฎเดพเตปเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดkubectl
.
เดธเดพเดงเตเดฏเดคเดเตพ เด เดจเดจเตเดคเดฎเดพเดฃเต!
เดตเดฟเดตเตผเดคเตเดคเดเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟ.เดเดธเต
เดเดเตเดเดณเตเดเต เดฌเตเดฒเตเดเดฟเดฒเตเด เดตเดพเดฏเดฟเดเตเดเตเด:
- ยซ
Kubernetes-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเดเต เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเตเดณเตเดณ เดเดชเดเดฐเดฃเดเตเดเตพ "; - ยซ
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดจเตเดฑเตเดเตเดเตเดเดณเตเด เดคเดจเตเดคเตเดฐเดเตเดเดณเตเด: เดชเตเดฐเดพเดฆเตเดถเดฟเด เดตเดฟเดเดธเดจเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดเตเดฒเดฟเดชเตเดฐเตเดธเตปเดธเตเดเตเดเตเดฑเดฟเดเตเดเตเด "; - ยซ
Kubernetes เดชเตเดกเตเดเดณเดฟเดฒเต เดกเตเดฌเดเตเดเดฟเดเดเดฟเดจเตเดณเตเดณ kubectl-debug เดชเตเดฒเดเดฟเตป "; - ยซ
เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเตพ ".
เด เดตเดฒเดเดฌเด: www.habr.com