在本地访问集群网络,拦截 k8s service 流量到本地调试 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
naison
V2EX    Kubernetes

在本地访问集群网络,拦截 k8s service 流量到本地调试

  •  
  •   naison 2024-08-10 22:39:44 +08:00 2116 次点击
    这是一个创建于 425 天前的主题,其中的信息可已经有所发展或是发生改变。
    本人之前一直做云原生,Paas 平台的开发,所以经常和 k8s 打交道,因此理解要在本地调试代码的难度,因此开发了 kubevpn 这个工具,能够在本地拦截 k8s 流量到本地,然后自己的项目可以直接链接 k8s 中的数据库和三方中间件。因此调试比较方便。
    项目地址: https://github.com/kubenetworks/kubevpn
    本地开发最佳实践: https://www.kubevpn.cn/docs/blog/connect_mode
    14 条回复    2024-08-13 19:51:29 +08:00
    vczyh
        1
    vczyh  
       2024-08-12 10:04:56 +08:00
    请问怎么拦截 k8s service 流量的,比较好奇。
    vczyh
        3
    vczyh  
       2024-08-12 10:30:43 +08:00
    @Mystery0 谢谢你好人侠
    Mystery0
        4
    Mystery0  
       2024-08-12 10:37:28 +08:00
    @vczyh #3 哈哈哈,只是正好对这个也感兴趣,就点进去项目看了一下。
    看起来这类东西的方案都是一样的,在容器里面启动一个 pod ,然后把本地的流量往这个 pod 去发(感觉有点像代理),以前阿里好像有个 kt-connect 也是相似的方案。
    这种方案可能在测试环境使用,在生产不一定适用,因为生产环境一般是限制了外网访问的,更别说这种东西要启动 pod 还要去拉一个镜像下来运行,可能压根连镜像都拉不动
    vczyh
        5
    vczyh  
       2024-08-12 10:55:54 +08:00
    @Mystery0 所有流量往指定 pod 发送是通过修改默认路由实现的吗?这样会不会影响别人使用,如果别人也使用这种工具是不是就冲突了。
    artiga033
        6
    artiga033  
       2024-08-12 13:46:10 +08:00 via Android
    挺有用,有空研究研究,个人目前还在用 kubectl portforward 的刀耕火种方案
    dier
        7
    dier  
       2024-08-12 17:52:49 +08:00
    是指用来访问本地的 K8S 集群服务吗?我用过一个方法,集群部署时,手动定义一个 SVC 网段,在局域网内的路由器上添加一个静态路由将这个网段的流量转发到任意一个集群 Node 上,因为集群的任意 Node 都可以访问集群中的 SVC 地址,从而实现直接访问集群内的 ClusterIP
    Mystery0
        8
    Mystery0  
       2024-08-12 20:51:49 +08:00
    @vczyh #5 感觉是通过 iptables 或者路由表之类的东西实现的转发,具体的我也不了解 我是搞应用层的
    naison
        9
    naison  
    OP
       2024-08-13 19:46:23 +08:00
    @Mystery0 好人侠~
    naison
        10
    naison  
    OP
       2024-08-13 19:47:28 +08:00
    @Mystery0 启动时可以使用 kubevpn connect --image 参数,指定从哪里拉取镜像的,可以是私有仓库,只要集群可以拉取到就行
    naison
        11
    naison  
    OP
       2024-08-13 19:47:56 +08:00
    @vczyh https://www.kubevpn.cn/docs/architecture/connect 这里也有一些架构图,可以看看~
    naison
        12
    naison  
    OP
       2024-08-13 19:49:04 +08:00
    @vczyh 修改本地路由,不会影响到别人的,因为使用了 service mesh 来做区分,不同的流量会击中不同的服务。
    naison
        13
    naison  
    OP
       2024-08-13 19:49:18 +08:00
    @artiga033 go go go ~
    naison
        14
    naison  
    OP
       2024-08-13 19:51:29 +08:00   1
    @dier 是的,你说的这样也是一种方案。不过 kubevpn 不仅可以访问到 service ip (或 service name )也可以访问 pod ip ,同时也可以拦截流量到本地,挺方便的吧~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2898 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:48 PVG 21:48 LAX 06:48 JFK 09:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86