在远程集群中将本地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第三方库


热门话题
javafx在java中显示图像或形状的二维网格   java如何部署WAR文件而不是根文件。AWS Elastic Beanstalk中配置了Amazon AMI的war?   java如何在Eclipse中设置runnable jar的目标版本   Java 8流/收集器按地图分组   java ParseServer:不保存用户信息?   MySQL:java。sql。BatchUpdateException:键“PRIMARY”的重复条目“242243”   java Jersey测试框架为grizzly中的所有未知路径定义默认错误响应   java使用所有请求参数将请求从一个jsp转发到另一个jsp?   java为什么在JavaFX8中选择CheckboxTableCell时SelectedStateCallback不起作用?   期待EOF的java发现“异常”   java如何使用SeleniumWebDriver捕获弹出窗口的屏幕?   java无法从安卓手机向我的数据库发送截击post请求   java Selenium单击切换元素   java使用Spring api向服务器发送数据   继承和创建新类之间的java差异   数组io。内蒂。ByteBuf writeBytes(java.nio.ByteBuffer src)顶点化   java相对于多次选择和一次更新,删除和插入的代价有多高?   java单向一对多,父级具有复合密钥   Java Spring批处理多线程作业失败,原因是“致命:由于idleintransaction超时而终止连接”