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

有没有办法实现一个对外服务就可以访问 k8s 集群内的所有服务?

  •  
  •   chen0520 · 32 天前 · 2611 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前在围绕 code-server 进行开发,现在碰到了启用了内部服务,但是只能通过 curl 进行测试,或者说我希望从我这个 code-server 访问另一个 code-server 开的服务,此时也只能 curl 。想了一个方案,每开一个服务,就对外开放这个端口的 ingress ,但操作起来太麻烦了。我想直接通过一个内部服务,这个 pod 对外开放一个页面,然后我在这个页面里面输入一个内部 cluster 的 ip 或者内部域名,就可以访问 k8s 内部的所有服务.有类似的实现方案吗?

    26 条回复    2025-09-20 15:43:37 +08:00
    guanzhangzhang
        1
    guanzhangzhang  
       32 天前
    kt-connect?
    stormtrooperx5
        2
    stormtrooperx5  
       32 天前
    kubectl proxy / kubectl port-foward
    R77
        3
    R77  
       32 天前
    加路由,直接访问 pod IP
    fitme
        4
    fitme  
       32 天前
    没看懂,如果是联调可以直接 vpn 和 k8s 网络打通访问 podip
    yandong1228
        5
    yandong1228  
       32 天前
    可以在集群内弄一个 wireguard ,你的电脑和集群组网就行了
    hwdq0012
        6
    hwdq0012  
       32 天前
    把开发机器做一个 node 加入集群,打上污点, 把开发环境打成 docker images , 做成工作量资源 ,打上容忍, 在集群里远程开发
    chen0520
        7
    chen0520  
    OP
       32 天前
    @fitme vpn 的话感觉略重啊。而且每个用户都需要安装
    chen0520
        8
    chen0520  
    OP
       32 天前
    @stormtrooperx5 需要面向所有普通用户,普通用户是没有 kubectl 权限的
    chen0520
        9
    chen0520  
    OP
       32 天前
    @hwdq0012 开发机器是 win,而且集群是定制的私有云
    hwdq0012
        10
    hwdq0012  
       32 天前
    https://www.okteto.com/docs/
    不能像这个工具一样,开一个 Pod 来跑开发阶段的服务吗, 用 ssh 远程同步部署,执行命令
    hwdq0012
        11
    hwdq0012  
       32 天前
    @hwdq0012 #10 不是发广告哈,我之前用时这个工具时还不是收费的

    重点是把 ssh 端口打通
    代码同步用 rsync -av -e ssh user@ip
    直接 vs code ssh remote 都可以
    billzhuang
        12
    billzhuang  
       32 天前
    tailscale
    BeautifulSoap
        13
    BeautifulSoap  
       32 天前 via Android
    你可以用 tailscale 或者 wireguard 组网做 Flannel ,这样无论哪个设备只要加入网络中就能随意访问 k8s 集群内任意一个 pod ,service 了
    keniusahdu
        14
    keniusahdu  
       32 天前   ❤️ 1
    kubevpn 可以直接让应用在本机像容器内一样。或者 nocalhost (好像不维护了)可以直接把应用部署到开发环境中。
    bli22ard
        15
    bli22ard  
       32 天前   ❤️ 1
    弄个 pod ,运行一个 http 代理,然后要访问集群内部 ip 的地方,配置规则走这个 http 代理
    BeautifulSoap
        16
    BeautifulSoap  
       32 天前
    @BeautifulSoap 补充:我就是有一个多台 vps 组的 k8s 集群,用的 tailscale 后端的 Flannel ,在家里或者手机上想临时进入集群的话就直接 tailscale 切一下账号就行。这种做法的最大好处就是我能在本地电脑直接用集群内部的 cidr (比如 10.x.x.x )的 ip 访问对应 pod,service ,完全不需要 forward 和 ingress
    sampeng
        17
    sampeng  
       32 天前 via iPhone
    不是…哪那么麻烦…把 k8s 和公司网络打通不就完事了?这很难?
    fitme
        18
    fitme  
       32 天前
    @chen0520 不需要,直接在公司路由器做就行
    eudore
        19
    eudore  
       32 天前
    privoxy 单向打通 pod 和 svc 网络。
    momocraft
        20
    momocraft  
       32 天前
    跑一个有 web ui 的远程桌面服务?
    suofeiya
        21
    suofeiya  
       32 天前
    kubevpn, tailscale, wiregurad.
    Andrue
        22
    Andrue  
       32 天前
    WireGuard 直接代理整个开放的子网应该就行了吧
    xingxing09
        23
    xingxing09  
       32 天前   ❤️ 1
    搞个 proxy 服务就好了,其他的通过泛域名或者 path 做区分。当然这个仅限 HTTP 请求,如果是其他 TCP/UDP 另说
    chen0520
        24
    chen0520  
    OP
       31 天前
    @xingxing09 是 http,采用泛域名方案了,目前观察所有方案这个改动最小,tcp 可能后面有需求,再看了
    chen0520
        25
    chen0520  
    OP
       31 天前
    @sampeng 主要受到环境的一些限制,纯内网信创环境,而且每个需要使用的人都要更新网络配置,实现成本比较大,鉴于目前只有 http 需求,先使用泛域名 proxy 形式实现了
    chen0520
        26
    chen0520  
    OP
       31 天前
    @keniusahdu 实际个人开发或者测试环境调试我比较赞同,但是生产环境受限因素太多,还是感谢你的分享
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3958 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:55 · PVG 08:55 · LAX 17:55 · JFK 20:55
    ♥ Do have faith in what you're doing.