V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
naison
V2EX  ›  Kubernetes

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

  •  
  •   naison · 115 天前 · 1606 次点击
    这是一个创建于 115 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人之前一直做云原生,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  
       113 天前
    请问怎么拦截 k8s service 流量的,比较好奇。
    vczyh
        3
    vczyh  
       113 天前
    @Mystery0 谢谢你好人侠
    Mystery0
        4
    Mystery0  
       113 天前
    @vczyh #3 哈哈哈,只是正好对这个也感兴趣,就点进去项目看了一下。
    看起来这类东西的方案都是一样的,在容器里面启动一个 pod ,然后把本地的流量往这个 pod 去发(感觉有点像代理),以前阿里好像有个 kt-connect 也是相似的方案。
    这种方案可能在测试环境使用,在生产不一定适用,因为生产环境一般是限制了外网访问的,更别说这种东西要启动 pod 还要去拉一个镜像下来运行,可能压根连镜像都拉不动
    vczyh
        5
    vczyh  
       113 天前
    @Mystery0 所有流量往指定 pod 发送是通过修改默认路由实现的吗?这样会不会影响别人使用,如果别人也使用这种工具是不是就冲突了。
    artiga033
        6
    artiga033  
       113 天前 via Android
    挺有用,有空研究研究,个人目前还在用 kubectl portforward 的刀耕火种方案
    dier
        7
    dier  
       113 天前
    是指用来访问本地的 K8S 集群服务吗?我用过一个方法,集群部署时,手动定义一个 SVC 网段,在局域网内的路由器上添加一个静态路由将这个网段的流量转发到任意一个集群 Node 上,因为集群的任意 Node 都可以访问集群中的 SVC 地址,从而实现直接访问集群内的 ClusterIP
    Mystery0
        8
    Mystery0  
       113 天前
    @vczyh #5 感觉是通过 iptables 或者路由表之类的东西实现的转发,具体的我也不了解 🤣 我是搞应用层的
    naison
        9
    naison  
    OP
       112 天前
    @Mystery0 好人侠~
    naison
        10
    naison  
    OP
       112 天前
    @Mystery0 启动时可以使用 kubevpn connect --image 参数,指定从哪里拉取镜像的,可以是私有仓库,只要集群可以拉取到就行
    naison
        11
    naison  
    OP
       112 天前
    @vczyh https://www.kubevpn.cn/docs/architecture/connect 这里也有一些架构图,可以看看~
    naison
        12
    naison  
    OP
       112 天前
    @vczyh 修改本地路由,不会影响到别人的,因为使用了 service mesh 来做区分,不同的流量会击中不同的服务。
    naison
        13
    naison  
    OP
       112 天前
    @artiga033 go go go ~
    naison
        14
    naison  
    OP
       112 天前   ❤️ 1
    @dier 是的,你说的这样也是一种方案。不过 kubevpn 不仅可以访问到 service ip (或 service name )也可以访问 pod ip ,同时也可以拦截流量到本地,挺方便的吧~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:37 · PVG 05:37 · LAX 13:37 · JFK 16:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.