tcpserver, netcat เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดชเต‹เดกเดฟเดฒเต‹ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดฒเต‹ เด’เดฐเต เดคเตเดฐเด™เตเด•เด‚ เดŽเด™เตเด™เดจเต† เดคเตเดฑเด•เตเด•เดพเด‚

เด•เตเดฑเดฟเดชเตเดชเต. เดตเดฟเดตเตผเดคเตเดคเดจเด‚.: LayerCI เดฏเตเดŸเต† เดธเตเดฐเดทเตเดŸเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดˆ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เด•เตเดฑเดฟเดชเตเดชเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดณเตเดณ เดจเตเดฑเตเด™เตเด™เตเด•เดณเตเด‚ เดคเดจเตเดคเตเดฐเด™เตเด™เดณเตเด‚ (เด•เต‚เดŸเตเดคเตฝ เด•เต‚เดŸเตเดคเตฝ) เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดฎเดฟเด•เดšเตเดš เดšเดฟเดคเตเดฐเต€เด•เดฐเดฃเดฎเดพเดฃเต. เด‡เดตเดฟเดŸเต† เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเดฐเดฟเดนเดพเดฐเด‚ เดšเตเดฐเตเด•เตเด•เด‚ เดšเดฟเดฒเดคเดฟเตฝ เด’เดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต, เด’เดฐเตเดชเด•เตเดทเต‡, เดเดฑเตเดฑเดตเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒ (เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ, เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ K8 เด•เตพเด•เตเด•เตเดณเตเดณ "เดจเต‡เดฑเตเดฑเต€เดตเต" เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏเต‡เด•เตเด•เดพเด‚ kubectl port-forward). เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เตเดฒเดพเดธเดฟเด•เตเด•เตฝ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดตเดฏเต† เด•เต‚เดŸเตเดคเตฝ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดถเตเดจเด‚ เดจเต‹เด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต - เด…เดคเต‡ เดธเดฎเดฏเด‚ เดฒเดณเดฟเดคเดตเตเด‚ เดตเดดเด•เตเด•เดฎเตเดณเตเดณเดคเตเด‚ เดถเด•เตเดคเดตเตเดฎเดพเดฃเต (เดชเตเดฐเดšเต‹เดฆเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เด…เดตเดธเดพเดจเด‚ "เดฎเดฑเตเดฑเต เด†เดถเดฏเด™เตเด™เตพ" เด•เดพเดฃเตเด•).

tcpserver, netcat เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดชเต‹เดกเดฟเดฒเต‹ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดฒเต‹ เด’เดฐเต เดคเตเดฐเด™เตเด•เด‚ เดŽเด™เตเด™เดจเต† เดคเตเดฑเด•เตเด•เดพเด‚

เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดธเดพเดนเดšเดฐเตเดฏเด‚ เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•: เด’เดฐเต เดชเต‹เดกเต/เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดฒเต‡เด•เตเด•เต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดคเดฟเดฐเดฟเดšเตเดšเตเด‚) เดŸเตเดฐเดพเดซเดฟเด•เต เดฎเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดซเต‹เตผเดตเต‡เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดฎเต†เดทเต€เดจเดฟเตฝ เด’เดฐเต เดชเต‹เตผเดŸเตเดŸเต เดตเต‡เดฃเด‚.

เดธเดพเดงเตเดฏเดฎเดพเดฏ เด‰เดชเดฏเต‹เด— เด•เต‡เดธเตเด•เตพ

  1. HTTP เดŽเตปเดกเตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดŽเดจเตเดคเดพเดฃเต เดจเตฝเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• /healthz เดชเตเดฐเตŠเดกเด•เตเดทเตป เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เดชเต‹เดกเต.
  2. เดฒเต‹เด•เตเด•เตฝ เดฎเต†เดทเต€เดจเดฟเดฒเต† เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต TCP เดกเต€เดฌเด—เตเด—เตผ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.
  3. เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดงเดฟเด•เดพเดฐเดฟเด•เดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เดชเตเดฐเตŠเดกเด•เตเดทเตป เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด†เด•เตเดธเดธเต เดจเต‡เดŸเตเด• (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฒเต‹เด•เตเด•เตฝ เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเต เดฑเต‚เดŸเตเดŸเต เด…เดตเด•เดพเดถเด™เตเด™เดณเตเดฃเตเดŸเต).
  4. เด’เดฐเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเตผ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เด’เดฐเต เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† เดกเดพเดฑเตเดฑเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เด’เดฑเตเดฑเดคเตเดคเดตเดฃ เดฎเตˆเด—เตเดฐเต‡เดทเตป เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.
  5. เด’เดฐเต เดตเต†เตผเดšเตเดตเตฝ เดกเต†เดธเตเด•เตเดŸเต‹เดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต VNC เดธเต†เดทเตป เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด• (XVFB เด•เดพเดฃเตเด•).

เด†เดตเดถเตเดฏเดฎเดพเดฏ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เดตเดพเด•เตเด•เตเด•เตพ

Tcpserver โ€” เดฎเดฟเด•เตเด• เดฒเดฟเดจเด•เตเดธเต เดชเดพเด•เตเด•เต‡เดœเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเดฟเดฒเตเด‚ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดฒเดญเตเดฏเดฎเดพเดฃเต. เด’เดฐเต เดฒเต‹เด•เตเด•เตฝ เดชเต‹เตผเดŸเตเดŸเต เดคเตเดฑเด•เตเด•เดพเดจเตเด‚ stdin/stdout เดตเดดเดฟ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจ เดŸเตเดฐเดพเดซเดฟเด•เตเด•เต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด•เดฎเดพเตปเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต:

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:~$

(asciinema.org)

เดจเต†เดฑเตเดฑเตเด•เดพเดฑเตเดฑเต เดจเต‡เดฐเต† เดตเดฟเดชเดฐเต€เดคเดฎเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต. เด’เดฐเต เดคเตเดฑเดจเตเดจ เดชเต‹เตผเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš 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:~$

(asciinema.org)

เดฎเตเด•เดณเดฟเดฒเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, 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

(asciinema.org)

tcpserver, netcat เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดชเต‹เดกเดฟเดฒเต‹ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเดฒเต‹ เด’เดฐเต เดคเตเดฐเด™เตเด•เด‚ เดŽเด™เตเด™เดจเต† เดคเตเดฑเด•เตเด•เดพเด‚
เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‡เดจเตเดฑเดฑเดพเด•เตเดทเตป เดกเดฏเด—เตเดฐเด‚

เดตเดฟเดชเดฐเต€เดค เดฆเดฟเดถเดฏเดฟเตฝ: เดชเต‹เดกเดฟเตฝ เด•เต‡เตพเด•เตเด•เตเด•เดฏเตเด‚ เดนเต‹เดธเตเดฑเตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•

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.

เดธเดพเดงเตเดฏเดคเด•เตพ เด…เดจเดจเตเดคเดฎเดพเดฃเต!

เดตเดฟเดตเตผเดคเตเดคเด•เดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•