แฒจแแแแจแแแ. แแแ แแแแ: LayerCI-แแก แจแแแฅแแแแแแก แแก แแ แแฅแขแแแฃแแ แฉแแแแฌแแ แ แแ แแก แแแ แแ แฌแแแแแฃแแ แ แฉแแแแแแกแ แแ แฎแ แแแแแแก แจแแกแแแแจแแแแ แแแฃแกแขแ แแชแแ Kubernetes-แแกแแแแก (แแ แแ แ แแฎแแแแ). แแฅ แจแแแแแแแแแแแฃแแ แแแแแกแแแแแ แแฎแแแแ แแ แ-แแ แแแ แแ แ แแแแแแแแแแแ แแ, แแแแแ, แแ แชแแฃ แงแแแแแแ แแจแแแ แ (แแแแแแ แแ แจแแแแฎแแแแแกแแแแก, แแแแแแขแแ แแแจแ แฃแแแ แแแฎแกแแแแแ K8-แแแแกแแแแก "แแจแแแแแฃแ แ" แจแแแซแแแแ แแงแแก แจแแกแแคแแ แแกแ. kubectl port-forward
แฌแแ แแแแแแแแแ แขแแแแฃแ แ แกแแขแฃแแชแแ: แแกแฃแ แ แแแ แขแ แแฅแแแแก แแแแแแแแ แแ แแแแ แแขแแ, แ แแแ แฏแแแแกแแฃแ แแ แแแแแแแแแแแแก แขแ แแคแแแ แแแ/แแแแขแแแแแ แจแ (แแ แแแ แแฅแแ).
แจแแกแแซแแ แแแแแงแแแแแแก แจแแแแฎแแแแแแ
- แจแแแแแฌแแแ แ แแก แแแ แฃแแแแก HTTP แกแแแแแแ แฌแแ แขแแแ
/healthz
pod แฌแแ แแแแแแก แแแแกแขแแ แจแ. - แจแแแแ แแแ TCP แแแแแ แแแ แแแแแแฃแ แ แแแแ แแขแแก แแแแแ.
- แแแแฆแแ แฌแแแแแ แฌแแ แแแแแแก แแแแแชแแแแ แแแแแแ แแแแแแแแ แแแ แแแแแชแแแแ แแแแแก แฎแแแกแแฌแงแแแแแแแ แแแขแแ แแแแชแแแก แจแแฌแฃแฎแแแแก แแแ แแจแ (แ แแแแ แช แฌแแกแ, localhost-แก แแฅแแก root แฃแคแแแแแแ).
- แแแฃแจแแแ แแแแแชแแแแ แแ แแฏแแ แแแ แแแแ แแชแแแก แกแแ แแแขแ แแแแแแแก แแแแกแขแแ แจแ, แแแกแแแแก แแแแขแแแแแ แแก แจแแฅแแแแก แแแ แแจแ.
- แจแแแแ แแแ 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
แแก แแ แซแแแแแ แกแแจแฃแแแแแแก แแซแแแแก pod-แก แฌแแแแแ แฐแฅแแแแแก แแแ แข 8000 แแแแแแแแ แแ แแแแฅแแแแแ.
แแแจแแก แกแแ แแแขแ
แแ แแแแฌแแ แ แกแแแชแแแแฃแ แ แกแแ แแแขแ Bash-แแกแแแแก, แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแ แแแ Kubernetes แฌแแ แแแแแแก แแแแกแขแแ แ
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"
- แแแแ แแแแกแแแแก K3-แแแ - แจแแชแแแแแ แแแ:
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
.
แจแแกแแซแแแแแแแแแ แฃแกแแแฆแแ แแ!
PS แแแแ แแแแแแแกแแแ
แแกแแแ แฌแแแแแแฎแแ แฉแแแแก แแแแแแ:
- ยซ
แแแกแขแ แฃแแแแขแแแ Kubernetes-แแ แแแจแแแแฃแแ แแแแแแแชแแแแแก แแแแแแแแแ แแแแกแแแแก "; - ยซ
Kubernetes-แแก แ แฉแแแแแ แแ แฎแ แแแแแ: แแแแแแแแ แแแ แแแแแแแแ แแแแกแ แแ แขแแแแงแแคแแก แจแแกแแฎแแ "; - ยซ
kubectl-debug แแแแแแแขแ Kubernetes pods-แจแ แแแแแ แแแแกแแแแก "; - ยซ
แกแแกแแ แแแแแ แฃแขแแแแขแแแ Kubernetes-แแแ แแฃแจแแแแแกแแก ".
แฌแงแแ แ: www.habr.com