我有一个(正在运行的)测试程序,该程序通过UDP多播发送和接收消息。我已成功将其部署到kubernetes集群,并演示了两个Pod相互通信。唯一要注意的是,我需要将hostNetwork: true
添加到pod规范中。据我了解,这会禁用所有原本可用的网络虚拟化。我也尝试过
- containerPort: 12345
hostPort: 12345
protocol: UDP
但是当我在没有hostNetwork
的情况下使用它时,通讯会失败。
是否有办法在仍然可以使用正常网络进行其他所有工作的同时进行此工作? (我们不太可能希望将网络层切换到Weave之类。)
答案 0 :(得分:-1)
当您希望从嵌套的Pod直接访问Node网络接口时,使用<div id="dialog">
<div style="max-height: 400px;">
POPUP CONTENTS GO HERE
</div>
</div>
很好,但是当您将应用程序托管在几个Node上时,它会带来一些限制,因为每次Kubernetes都会重新启动Pod。 ,它可能会在其他节点上旋转,结果可能会更改您应用程序的IP地址。此外,在计划在Kubernetes集群中扩展应用程序时,使用hostNetwork: true
会给端口冲突带来一些问题,因此,当您在Cloud环境中引导Kubernetes集群时,建议不要实施。
如果您不打算将覆盖网络用于Pod通信作为Cluster Networking模型的重要组成部分,那么您可能会失去一些基本的好处,例如DNS解析功能(CoreDNS,Kube-DNS )。
我想您可以尝试将hostNetwork
用作Service对象。由于NodePort
服务代理针对相应节点上的应用程序端口这一事实,可能值得检查它是否满足您的要求,但是对于更高级的应用程序部署组成和网络规范,我一无所知解决方案。