是否可以使用Kubernetes pod加入同一子网中的硬件?

时间:2017-08-15 06:07:37

标签: networking kubernetes

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

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

任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我最终通过在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