Skip to content

Commit

Permalink
update blog
Browse files Browse the repository at this point in the history
  • Loading branch information
ginuerzh committed Jan 29, 2024
1 parent 068e225 commit 33fe11d
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions docs/blog/posts/k8s-local-debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ comments: true

当前的容器,Kubernetes等云原生技术使我们的服务部署和管理更加灵活和便利,然而任何技术有利就会有弊,当一个应用运行在Kubernetes集群中时,如果需要对其进行调试则会很麻烦。

目前比较主流的解决方案是使用[Telepresence](https://www.telepresence.io/)等工具,通过VPN的方式接入集群网络,将服务的流量拦截并转发到本地服务,从而实现本地环境下的开发和调试。下面我们将利用[反向代理隧道](https://gost.run/tutorials/reverse-proxy-tunnel/)来实现类似的功能。
目前比较主流的解决方案是使用[Telepresence](https://www.telepresence.io/)等工具,将服务的流量拦截并转发到本地服务,从而实现本地环境下的开发和调试。下面我们将利用[反向代理隧道](https://gost.run/tutorials/reverse-proxy-tunnel/)来实现类似的功能。

<!-- more -->

Expand Down Expand Up @@ -171,15 +171,15 @@ spec:
反向代理隧道服务定义了两个端口:`entrypoint` - 外部流量的入口点:80,`tunnel` - 隧道客户端入口:8421。

由于采用的是Websocket协议,因此外部的隧道客户端可以和正常的流量一样通过Ingress由指定的`/proxy`路径连接到隧道服务。此时在本地只需要执行以下命令就会将流量分流道本地的Nginx服务中
由于采用的是Websocket协议,因此外部的隧道客户端可以和正常的流量一样通过Ingress由指定的`/proxy`路径连接到隧道服务。此时在本地只需要执行以下命令就会将流量分流到本地的Nginx服务中

```bash
gost -L rtcp://:0/:80 -F "tunnel+ws://192.168.1.1:80?tunnel.id=10bc451e-59dc-4c70-999e-91a30813ac78&tunnel.weight=1&path=/proxy&host=nginx.local"
```

![Traffic Split](../../images/k8s-local-debug-4.png)

注意隧道客户端的`weight`参数,通过此参数可以指定隧道连接的权重。当一个隧道有多个客户端连接时,隧道服务端将采取加权随机方式来选择客户端,权重值越大的连接被选中的几率越高,权重值的范围是[1,255]。在上面的例子中两个客户端的权重都为1,因此转发到每个客户端的流量均为50%。
注意隧道客户端的`weight`参数,通过此参数可以指定隧道连接的权重。当一个隧道有多个客户端连接时,隧道服务端将采取加权随机方式来选择客户端,权重值越大的连接被选中的几率越高,权重值的范围是[1,255]。在上面的例子中两个客户端的权重都为1因此转发到每个客户端的流量均为50%。

当权重值为`255`时,其他权重值小于255的客户端将被排除,流量仅会转发给权重值为255的客户端,通过这个机制可以拦截所有流量到本地。

Expand Down

0 comments on commit 33fe11d

Please sign in to comment.