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

IDEA 本地调试 Spring Cloud 项目,如何调用 k8s 集群里的 svc ip

  •  
  •   cxhello · 33 天前 · 2123 次点击
    这是一个创建于 33 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. Telepresence
    2. KT-Connect

    场景:本地 A 服务调用 k8s 集群上的 B 服务

    我们测试环境是一个 k8s 集群,然后目前采用的 KT-Connect 的方案。想用 Telepresence 但是需要 namespaces 的权限,我们运维只给开到 deployment 这一层权限。看看 V 友们一般都用的什么方案?

    24 条回复    2025-08-02 12:20:31 +08:00
    teaser
        1
    teaser  
       33 天前
    kubectl port-forward 可以是转出来吧
    runzhliu
        2
    runzhliu  
       33 天前
    测试集群物理机 IP 能访问的话,就把 svc 网段加到本地开发机的路由规则了,用测试集群的节点 IP 做网关
    LowBi
        3
    LowBi  
       33 天前
    尝试使用 telepresence ,但是没整起来,各种问题。🤦‍♂️
    mango88
        4
    mango88  
       33 天前
    用的 telepresence
    Richared
        5
    Richared  
       33 天前
    映射出来呗。
    cxhello
        6
    cxhello  
    OP
       33 天前
    @LowBi 我们用 KT-Connect 倒是没啥问题,就是想看看有没有更好的方案。
    cxhello
        7
    cxhello  
    OP
       33 天前
    @runzhliu 我们用的 nacos 然后 nacos 上的对应服务的 ip 都是 a.test.svc.cluster.local 类似于这样。
    Martens
        8
    Martens  
       33 天前
    还有一个工具 mirrord ,可以试一下
    aispring
        9
    aispring  
       33 天前
    1. 直接物理层用路由把网络打通
    2. 本机改 host ,但需要其他服务暴露可物理访问的端口地址或本机启动
    LowBi
        10
    LowBi  
       33 天前
    @cxhello 我也在找合适的调试方案,太痛苦了目前,本地调试的话还要启一些用不到但又关联的服务,内存爆炸不说,开发和调试过程就变得繁琐。再试试 KT-Connect ,看好不好使
    jianghuan2
        11
    jianghuan2  
       33 天前   ❤️ 2
    我们测试环境是我搭建的,直接 hostNetwork: true 。
    管它丫的,测试环境单副本就行。
    ccw4wcc
        12
    ccw4wcc  
       33 天前
    kt connect 好用
    xuanbg
        13
    xuanbg  
       33 天前
    本地启动加入集群啊,然后就是正常调用了。要想 100%路由到你的本地服务,基本上就是两个办法,一个是在路由上做文章,让网关直接转发给你,要么就是把别的服务都停掉,那就只能转发给你了。
    dlmy
        14
    dlmy  
       33 天前
    @jianghuan2 高端的食材往往只需要最朴素的烹饪方式
    buruoyanyang
        15
    buruoyanyang  
       33 天前
    kubevpn
    sujin190
        16
    sujin190  
       33 天前 via Android
    我们用的是 proxifier ,proxifier 配规则拦截掉全部对 pod 的 ip 访问,然后在 k8s 里用 deployment 部署一个简单的 socks5 代理来负责转发,安装配置简单,开发过程也是无感的
    BraveRBT
        17
    BraveRBT  
       33 天前
    加入一个小型 node 用于网络转发,关闭调度,开启内核 ip_forward 参数
    在交换机路由表配置 SVC 网段的请求转发到该节点作为网关即可

    外部看起来类似于直通,无需其他任何配置和程序转发
    bli22ard
        18
    bli22ard  
       33 天前
    nginx ingress ,通过二级域名映射出来,权限通过网络转换规则限制 。好处,调用者不需要安装任何软件
    eudore
        19
    eudore  
       33 天前
    部署一个 privoxy 可以单向暴露 pod 和 svc network ,然后本地配置 HTTP_PROXY 指向 privoxy 端口就好了。
    looveh
        20
    looveh  
       33 天前
    把 kubeconfig 弄到本地不行么?
    serialt
        21
    serialt  
       32 天前
    kt connect 会新建 pod ,kubefwd 好用一点
    liuhan907
        22
    liuhan907  
       32 天前
    在老东家用 k8s 的时候我是用支持 BGP 的 CNI 把整个集群内的地址都暴露到内网上了,内网可以直接访问集群内的所有 pod 和服务
    ysicing
        23
    ysicing  
       32 天前
    我自己的环境 tailscale 使用 connectors 功能。
    buffzty
        24
    buffzty  
       32 天前
    用 wg 组网 无感知互通 将 svc, pod, lan cidr 都加到转发规则中.
    [Peer]
    #Name = k8s node-1
    AllowedIPs = wg lan ip, svc cidr, pod cidr, node lan cidr
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5283 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:10 · PVG 17:10 · LAX 02:10 · JFK 05:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.