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

k8s port-forward 开放的端口在集群外是不能访问的吗?

  •  
  •   css3 · 2022-11-08 17:02:11 +08:00 · 941 次点击
    这是一个创建于 535 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果要集群外访问,只能创建 NodePort 的 svc 才行吗? port-forward 使用的场景是啥?

    10 条回复    2022-11-11 08:50:41 +08:00
    css3
        1
    css3  
    OP
       2022-11-08 17:05:15 +08:00
    Judoon
        2
    Judoon  
       2022-11-08 17:12:06 +08:00
    你的链接里面已经说的很明白了,kubectl port-forward 是给你 debug 用的,和 svc 里面的暴露方式是两回事。

    而且这个 forward 映射出来的端口,只能在执行 kubectl 的机器上被访问,这就取决于你这台机器上的安全规则
    yasi
        3
    yasi  
       2022-11-08 17:22:13 +08:00
    port-forward 就是给集群外访问用的啊,你还可以 bind 0.0.0.0 任意地方都可以访问。
    MrSheng
        4
    MrSheng  
       2022-11-08 17:27:06 +08:00
    # Listen on port 8888 on all addresses, forwarding to 5000 in the pod
    kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
    ospider
        5
    ospider  
       2022-11-08 17:36:33 +08:00
    2L 说得对,这个是 debug 用的,不是给你生产系统上暴露端口用的。
    css3
        6
    css3  
    OP
       2022-11-09 20:27:21 +08:00
    @MrSheng 感谢感谢,就是少了 --address 0.0.0.0 这个参数,导致集群外无法访问
    css3
        7
    css3  
    OP
       2022-11-09 21:00:15 +08:00
    尝试转发了 elasticsearc ,集群外已经能请求是通的,但是服务不可用
    kubectl port-forward -n debug svc/elasticsearch 32345:9200 --address 0.0.0.0 # 集群外浏览器访问时,命令行报以下错:
    Forwarding from 0.0.0.0:32345 -> 9200
    Handling connection for 32345
    E1109 20:49:19.449246 2732386 portforward.go:400] an error occurred forwarding 32345 -> 9200: error forwarding port 9200 to pod 363e34776981b5357de40b6139fd9ee2c978a05eebd1a5f7932b7bf3868930f2, uid : exit status
    1: 2022/11/09 20:49:19 socat[541516] E connect(5, AF=2 127.0.0.1:9200, 16): Connection refused

    但我用:kubect expose svc -n debug elasticsearch --name elasticsearch-svc --type=NodePort 后,集群外浏览器能正常访问 es 的版本页面

    请问下大家这是咋回事啊, 是这么用的吗


    @Judoon
    @yasi
    @MrSheng
    @ospider
    MrSheng
        8
    MrSheng  
       2022-11-10 16:51:51 +08:00
    @css3 用 svc 暴露是正确的。但是 port-forward 不可以有点奇怪,试个简单的服务呢,是不是 ES 自身的问题。
    css3
        9
    css3  
    OP
       2022-11-10 18:48:37 +08:00 via iPhone
    @yasi
    @MrSheng 试了 spark 可以
    MrSheng
        10
    MrSheng  
       2022-11-11 08:50:41 +08:00
    @css3 那是不是可以理解成 port-forward 机制本身是 ok 的,但是有些服务不允许这么做。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2836 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:51 · PVG 10:51 · LAX 19:51 · JFK 22:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.