symb0l

kubernetes+dubbo 架构集群内外网络通讯怎么解决

  •  
  •   symb0l · Apr 29, 2019 · 9837 views
    This topic created in 2571 days ago, the information mentioned may be changed or developed.

    在容器化的过程中,我们遇到了一个非常棘手的问题。玩过 k8s 的知道,k8s 有自己的一套网络管理机制,集群内的容器和容器之间是可以相互通信的。但是在容器化升级改造的过程中,不可能一步到位的将所有的服务全部迁移到 k8s 的容器当中来,毕竟新的技术在没有经过实践趟坑时,肯定不能轻易的全面铺开升级。那么就涉及到集群外的服务访问集群内的服务,集群内容器中的 ip 都是 k8s 管理的 ip,dubbo 服务注册的也是获取的容器内分配的 ip。比如我们的宿主主机 ip 是 172.10.15.xx,容器内的 ip 就是 10.10.2.x。群外的和宿主主机同网段的服务通过拿到 dubbo 的注册的 10.10.2.x 也根本没法访问容器内的 dubbo 服务,请问如何解决这个问题?

    9 replies    2021-11-15 17:42:42 +08:00
    symb0l
        1
    symb0l  
    OP
       Apr 29, 2019
    v2ex 的老哥们,救命哇。。
    monsterxx03
        2
    monsterxx03  
       Apr 29, 2019
    给 k8s 内的 dubbo 服务设置一个 NodePort 类型的 service 不就完了吗: https://kubernetes.io/docs/concepts/services-networking/service/#nodeport
    symb0l
        3
    symb0l  
    OP
       Apr 29, 2019
    @monsterxx03 谢谢回答,有考虑过,但后期 K8S 节点扩容后,集群外服务往集群内的一些网络权限变更就得重新搞,一个服务就得开一个策略,假设有一百个服务,扩容一台节点,就得加一百条策略,网络工程师应该会砍死我,。
    monsterxx03
        4
    monsterxx03  
       Apr 29, 2019
    自建的话我也想不到什么好办法, 你们估计用的 flannel 之类的 overlay 网络. 在 aws 上的话可以通过 vpc cni plugin 直接给 pod 分配 vpc 里的 ip, 这样 k8s 内外的服务可以直接通过 ip 通信.

    我对 dubbo 不熟悉, overlay 网络, 你要内外通信, 必然需要一个 service 做 NodePort, 不知道 dubbo 有没有单端口的代理方案.
    YzSama
        5
    YzSama  
       May 10, 2019
    我猜楼主是想让研发的网络与集群内部网络通信。

    如果是这样的话,只需要进行打通就可以了。
    Ksmriacle
        6
    Ksmriacle  
       Jun 8, 2020
    兄弟解决了么
    symb0l
        7
    symb0l  
    OP
       Jul 22, 2020
    @Ksmriacle 不好意思,平时比较少登陆 v2ex

    目前是这样解决的,在容器部署模板里的 env 部分定义一个变量,并声明 valueFrom.fieldRef.fieldPath 的值为 status.hostIP,这样容器启动后就可以通过环境变量获取到宿主机的 IP 地址,将注册地址改为主机地址,外部 zookeeper 对主机地址可见即可。
    mrsupns
        8
    mrsupns  
       Sep 17, 2020
    能发一个 demo 吗
    monkeyWie
        9
    monkeyWie  
       Nov 15, 2021
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3009 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 15:19 · PVG 23:19 · LAX 08:19 · JFK 11:19
    ♥ Do have faith in what you're doing.