Skip to main content

Expose your local TCP server as Kubernetes service in remote cluster.

Project description

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.

  1. Install krok client: pip install krok

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

  3. 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:

  1. 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.

  2. 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.

  3. 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

krok-1.0.0.tar.gz (4.4 kB view details)

Uploaded Source

File details

Details for the file krok-1.0.0.tar.gz.

File metadata

  • Download URL: krok-1.0.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

File hashes

Hashes for krok-1.0.0.tar.gz
Algorithm Hash digest
SHA256 22d2c335905f1155660eea7293a76ac31c062a828dec330e202de6a707366d14
MD5 599ea45248df5f3adc955b0f6cecae3b
BLAKE2b-256 375f3a8036b41fd6655f1679b475ecdd27ea78754233271c890d76450b1c452e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page