【问题标题】:Is it possible to join a hardware in the same subnet with Kubernetes pods?是否可以将硬件与 Kubernetes pod 连接到同一子网中?
【发布时间】:2018-01-23 01:08:09
【问题描述】:

我已经在裸机上设置了一个带有法兰绒网络的 Kubernetes 集群。我在集群中部署并运行了一项服务。该服务将广播以发现同一子网中的其他终端设备。

问题在于接收广播的客户端代理在资源受限的硬件上运行。这些设备与主节点和工作节点在同一子网中运行。 Pod 中部署的服务(网络掩码:10.244.0.0/16)无法发现在主机操作系统子网(网络掩码:192.168.0.0/24)中运行的客户端。如何加入 Pod 子网中的客户端?

感谢任何帮助。

【问题讨论】:

    标签: networking kubernetes


    【解决方案1】:

    问题在于它们实际上位于不同的子网中:pod 网络和裸机网络。因此,您必须检查哪些选项可用于不同子网之间的服务发现。一些人建议使用跟踪器(就像 P2P 网络一样)https://serverfault.com/a/304344/380575

    您也可以尝试将外部服务/端点添加到在集群外运行的服务中,但我不确定这是否可行。

    底线:如果您需要其他子网中的服务,您可以使用跟踪器或为它们创建静态端点。

    【讨论】:

      【解决方案2】:

      我最终通过在 pod 配置中添加 hostNetwork: true 使主机和 pod 在同一子网中运行。在这种情况下,容器正在使用主机网络。灵感来自here

      配置如下:

      apiVersion: v1
      kind: ReplicationController
      metadata:
       name: worker
       namespace: default
      spec:
       replicas: 4
       selector:
         name: worker
       template:
         metadata:
           labels:
             name: worker
       spec:
          hostNetwork: true
          containers:
             - image: 10.0.0.1:5000/worker
               name: worker
               imagePullPolicy: IfNotPresent
      

      【讨论】:

        猜你喜欢
        • 2021-12-07
        • 1970-01-01
        • 2020-03-16
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        • 2017-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多