krok 1.0.0

Last updated:

0 purchases

krok 1.0.0 Image
krok 1.0.0 Images
Add to Cart

Description:

krok 1.0.0

krok
as in ngrok
Expose your local TCP server as Kubernetes service in remote cluster.
Usage
Giving we want to create service in namespace with name service_name on port service_port forwarding all traffic from it to local_host (usually 127.0.0.1) and local_port.


Install krok client: pip install krok


Install krok server: kubectl -n <namespace> run --image=smpio/krok-server krok


Run krok: krok -n <namespace> -l <local_host> -p <local_port> <service_name> <service_port>


Note: local_host can be any host reachable from your machine, but usually 127.0.0.1 is the most useful.
How it works
We have running krok server in the pod krok_pod in namespace. The server is simple OpenSSH server that allows to forward incoming connections.
Krok client is simple script that automates the following steps:


Run kubectl port-forward <krok_pod> :22. It will listen on random local_ssh_port forwarding all connections to krok's OpenSSH server on krok_pod.


Run ssh -N -R *:0:<local_host>:<local_port> -p <local_ssh_port> krok@localhost. This causes krok's OpenSSH server on krok_pod to listen on random pod_port forwarding all connections to local_host:local_port using SSH tunnel.


Create or update service service_name with port service_port and targetPort pod_port, with selector matching krok_pod.


In the result, all connections to service_name:service_port will be forwarded to krok_pod, then to your local machine via SSH tunnel forwarded by kubectl port-forward, and then forwarded by SSH client to local_host:local_port.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.