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

k8s 支持桥接不

  •  
  •   idblife · 2020-06-30 14:04:19 +08:00 · 3688 次点击
    这是一个创建于 1606 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想给每个 pod 分配一个正常的 ip

    第 1 条附言  ·  2020-06-30 18:50:03 +08:00
    英特尔的 multus-cni 应该能解决,
    给 docker 容器再加一张使用 macvlan 的网卡
    29 条回复    2020-07-01 13:41:19 +08:00
    julyclyde
        1
    julyclyde  
       2020-06-30 14:07:06 +08:00
    也可以啊
    pmispig
        2
    pmispig  
       2020-06-30 14:23:55 +08:00
    支持,但是坑比较多。。插件没有比较权威的
    idblife
        3
    idblife  
    OP
       2020-06-30 14:41:14 +08:00
    @pmispig
    我们是自己搞了一套分布式服务化框架,java 工程直接获取网卡 ip 去 zookeeper 注册,获取到的 pod ip 从集群外无法连接,郁闷
    idblife
        4
    idblife  
    OP
       2020-06-30 14:41:26 +08:00
    @julyclyde
    请问有啥关键词,多谢
    julyclyde
        5
    julyclyde  
       2020-06-30 15:05:05 +08:00
    也可以啊
    @idblife 不需要啥关键词啊。网络这部分是容器系统的,不是 k8s 的
    vakara
        6
    vakara  
       2020-06-30 15:06:18 +08:00 via Android
    可以去看看 macvlan, 就可以和主机一样对外提供访问了。
    idblife
        7
    idblife  
    OP
       2020-06-30 15:06:40 +08:00
    @vakara
    多谢,我去看看 macvlan
    Illusionary
        8
    Illusionary  
       2020-06-30 15:11:25 +08:00
    @idblife 你这个需求太简单了,在公司路由加几条规则就可以做到办公网络直通 k8s pod 段 ip,我们公司就是这么弄的,开发环境的 k8s 集群搭在公司机房,办公网络的电脑可以直接访问 k8s 内部的 172.30.x.x 的 pod 网段
    rrfeng
        9
    rrfeng  
       2020-06-30 15:18:12 +08:00
    支持。
    pmispig
        10
    pmispig  
       2020-06-30 15:55:50 +08:00
    @Illusionary 应该要有一个 nat 网关吧?
    NoobPhper
        11
    NoobPhper  
       2020-06-30 17:10:37 +08:00
    HostNetwork: true
    yitiaoxiaoxi
        12
    yitiaoxiaoxi  
       2020-06-30 17:18:23 +08:00
    这样会不会有问题,pod 的 ip 会变化
    monkeyWie
        13
    monkeyWie  
       2020-06-30 17:45:05 +08:00
    为啥不用 NodePort service 暴露出去
    pepesii
        14
    pepesii  
       2020-06-30 17:54:00 +08:00
    可以用 hostport 不呢
    optional
        15
    optional  
       2020-06-30 18:16:26 +08:00 via iPhone
    nat 过去是最简单的
    joesonw
        16
    joesonw  
       2020-06-30 18:32:27 +08:00
    如果是开发环境的话, 可以试试 metallb, 支持从 DHCP 拿 IP 作为 Service IP
    idblife
        17
    idblife  
    OP
       2020-06-30 18:50:41 +08:00
    @Illusionary
    不是路由加几条规则就能搞定的吧
    idblife
        18
    idblife  
    OP
       2020-06-30 18:50:59 +08:00
    @joesonw
    多谢,我查查看
    idblife
        19
    idblife  
    OP
       2020-06-30 18:51:57 +08:00
    @monkeyWie
    需要应用主动去向 zookeeper 注册,应用是 ifconfig 取的本机网卡上的 ip
    idblife
        20
    idblife  
    OP
       2020-06-30 18:53:59 +08:00
    @NoobPhper
    需要相同端口的两个应用程序不能在同一节点上运行。当群集上运行的应用程序数量增加时,这可能会导致端口冲突。由于这些原因,主机网络不是使您的应用程序可以从群集外部访问的好方法。
    awhane
        21
    awhane  
       2020-06-30 19:18:34 +08:00
    你这个常规需求,只需 pod 和集群外网络互通即可。然后注意下容器实例停止清理注册中心心跳数据就行。
    idblife
        22
    idblife  
    OP
       2020-06-30 19:44:32 +08:00
    @awhane
    是的,互通好弄,问题是工程是如何获取到本容器的 ip,这个 ip 需要从集群外访问到
    awhane
        23
    awhane  
       2020-06-30 21:54:45 +08:00
    @idblife 拿容器 ip 你具体有什么困难呢?我看 java 拿本地 ip 的实现就是通过 /etc/hosts hostname 拿解析的 IP(容器 IP),拿到了然后注册到服务治理,外部访问即可。
    cheng6563
        24
    cheng6563  
       2020-06-30 22:06:51 +08:00 via Android
    我司是 network:host 了
    defunct9
        25
    defunct9  
       2020-07-01 06:13:58 +08:00 via iPhone
    网络是个很复杂的问题。
    建议直接 lxc,桥接。我们就是这么干的
    idblife
        26
    idblife  
    OP
       2020-07-01 10:54:02 +08:00
    idblife
        27
    idblife  
    OP
       2020-07-01 10:54:33 +08:00
    @awhane
    默认的容器 ip 从集群外部是无法访问到的啊
    awhane
        28
    awhane  
       2020-07-01 11:13:00 +08:00
    @idblife 如果你说的容器 ip 不是 127.0.0.1 地址。看你注册中心是包含了 k8s 实例和非 k8s 实例,要想互相访问就需要打通了,开源社区 underlay Calico Bgp 和外部交换机学习路由,或者外部静态路由分发到 k8s 某个节点都行。
    idblife
        29
    idblife  
    OP
       2020-07-01 13:41:19 +08:00
    @awhane
    准备通过 multus-cni 添加 macvlan,给 docker 容器里再加一块单独网卡用作跨集群通信
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1082 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.