เชจเซเซ
เชง. เช
เชจเซเชตเชพเชฆ: 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:~$
Netcat เชตเชฟเชฐเซเชฆเซเชง เชเชฐเซ เชเซ. เชคเซ เชคเชฎเชจเซ เชเซเชฒเซเชฒเชพ เชชเซเชฐเซเช เชธเชพเชฅเซ เชเซเชกเชพเชตเชพ เช เชจเซ เชคเซเชฎเชพเชเชฅเซ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเชฒ 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
เชคเซเชจเซ เชฒเซเชเซเชจเชพ เช
เชเชคเชฎเชพเช เชธเซเชเชฐเชเชฒเชเชซ เชเซเชกเชตเชพเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชเซ.
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 เชเชเซเชธเซเชธ เชเชฐเชตเชพเชจเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ.
เชฌเซเชถ เชธเซเชเซเชฐเชฟเชชเซเช
เชฎเซเช Bash เชฎเชพเชเซ เชเช เชเชพเชธ เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเซ เชเซ เชเซ เชคเชฎเชจเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชชเซเชฐเซเชกเชเซเชถเชจ เชเซเชฒเชธเซเชเชฐเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ
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
.
- เชฎเชพเช เชเชจเชฒ เชฎเชพเชเซ Docker เชคเชฎเซ เชฎเซเชเซเชฏ เชฒเชพเชเชจเชจเซ เชเชจเชพเชฅเซ เชฌเชฆเชฒเซ เชถเชเซ เชเซ:
tcpserver 127.0.0.1 6666 docker exec -i "$CONTAINER" nc 127.0.0.1 "$DESTPORT"
- เชฎเชพเช เชเชจเชฒ เชฎเชพเชเซ เชเซ 3 เชเชธ - เชคเซเชจเซ เชเชฎเชพเช เชฌเชฆเชฒเซ:
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 เชชเซเชกเซเชธเชฎเชพเช เชกเชฟเชฌเชเซเชเช เชฎเชพเชเซ kubectl-debug เชชเซเชฒเชเชเชจ ยป; - ยซ
เชเซเชฌเชฐเชจเซเชเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชเชชเชฏเซเชเซ เชเชชเชฏเซเชเชฟเชคเชพเช ยป.
เชธเซเชฐเซเชธ: www.habr.com