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

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

  •  
  •   chen0520 · 1 天前 · 1725 次点击

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

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