【问题标题】:Non-invasive UDP Multicast on KubernetesKubernetes 上的非侵入式 UDP 多播
【发布时间】:2019-01-28 20:58:52
【问题描述】:

我有一个(工作的)测试程序,可以通过 UDP 多播发送和接收消息。我已成功将其部署到 kubernetes 集群并演示了两个 pod 相互通信。唯一的问题是我需要将 hostNetwork: true 添加到 pod 规范中。据我了解,这会禁用所有原本可用的网络虚拟化。我也试过了

        - containerPort: 12345
          hostPort: 12345
          protocol: UDP

但是当我在没有hostNetwork 的情况下使用它时,通信失败。

有没有办法让这个工作同时仍然能够使用正常的网络来处理其他事情? (我们不太可能希望将网络层切换到 Weave 之类的东西。)

【问题讨论】:

    标签: kubernetes hostnetwork


    【解决方案1】:

    当您希望从嵌套的 Pod 直接访问 Node 网络接口时,使用 hostNetwork: true 很好,但是当您将应用程序托管在几个 Node 上时,它会带来一些限制,因为每次 Kubernetes 重新启动 Pod 时,它可以在不同的节点上旋转,因此您的应用程序的 IP 地址可能会更改。此外,当您计划在 Kubernetes 集群中扩展应用程序时,使用 hostNetwork 会导致端口冲突问题,因此不建议在云环境中引导 Kubernetes 集群时实施。

    如果您不考虑将覆盖网络用于 Pod 通信作为 Cluster Networking 模型的重要组成部分,那么您可能会失去一些基本优势,例如 DNS 解析功能(CoreDNSKube-DNS)。

    我想你可以尝试使用NodePort 作为Service 对象。由于NodePort 服务代理以相应节点上的应用程序端口为目标,因此可能值得检查它是否符合您的要求,但是对于更高级的解决方案,我对您的应用程序部署组合和网络规范一无所知。

    【讨论】:

    • 您能否分享有关您的环境的更多详细信息,以便我可以扩展我的答案或更新它?
    猜你喜欢
    • 2010-12-05
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2012-07-17
    • 2023-04-03
    相关资源
    最近更新 更多