在远程集群中将本地TCP服务器公开为kubernetes服务。

krok的Python项目详细描述


克朗

与ngrok中的一样

在远程集群中将本地TCP服务器公开为kubernetes服务。

用法

假设我们想在端口service_port上创建名为service_name的服务,将所有流量从该端口转发到local_host(通常为127.0.0.1)和local_port

  1. 安装krok客户端:pip install krok

  2. 安装krok服务器:kubectl -n <namespace> run --image=smpio/krok-server krok

  3. 运行krok:krok -n <namespace> -l <local_host> -p <local_port> <service_name> <service_port>

注意:local_host可以是任何可以从您的计算机访问的主机,但通常127.0.0.1是最有用的。

工作原理

我们在pod中运行krok服务器。服务器是简单的openssh服务器,允许转发传入连接。

krok客户端是一个简单的脚本,可以自动执行以下步骤:

  1. 运行kubectl port-forward <krok_pod> :22。它将随机监听转发到krok的openssh服务器的所有连接。

  2. 运行ssh -N -R *:0:<local_host>:<local_port> -p <local_ssh_port> krok@localhost。这导致krok在krok_pod上的openssh服务器使用ssh隧道随机监听pod_port将所有连接转发到local_host:local_port

  3. 使用端口service_port和目标端口pod_port创建或更新服务service_name,选择器匹配krok_pod

结果,到service_name:service_port的所有连接都将转发到krok_pod,然后通过kubectl port-forward转发的ssh隧道转发到本地计算机,然后由ssh客户端转发到local_host:local_port

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Gson类中的java验证错误   If和elseif之间的java差异?   字典Java8地图。输入比较器   java连接到远程计算机以获得WMI支持   java如何使用改型处理JSON对象中的空值   在Java中使用Comparator时不可编译的源代码   java将Jar添加到JSP的运行时路径   带有随机对象的while循环的java大O时间复杂性   java可以在不考虑参数的情况下模拟方法吗?   java我有一个简单的代码,它不工作。无法修复错误“println”   向eclipse添加Xively java库   java是否可以启用本机代码的缓存?   全局变量如何在Java中的所有类之间共享要使用的语言环境?   Java内存游戏如何翻转单个卡?