k8s 编织和 hostNetwork=true 提供随机端口

k8s weave and hostNetwork=true giving random ports

如果我用

生成一个 pod

hostNetwork: true

然后附加到它

kubectl exec -it my-pod-test bash

并生成一些像

这样的傻东西

nc -l < HOST_IP > 5678

并且 netstat 显示了我

tcp 0 0 0.0.0.0:34592 0.0.0.0:* LISTEN 94/nc

为什么分配了随机端口(在本例中)34592?我希望看到正在使用的端口 5678。

这是 Weave 的 "feature",我应该换一个网络插件吗?

更多背景信息:我正在尝试关注 https://www.compoundtheory.com/scaling-dedicated-game-servers-with-kubernetes-part-1-containerising-and-deploying/

你没有说你的 pod 是什么图像 运行ning,但我在使用 busybox nc, as found in images based on alpine 时遇到过这种症状。

正如您将在 the docs 中看到的,监听特定端口的语法是:

  nc -l -p 5678

请注意,hostNetwork: true 会绕过任何 pod 网络,因此这与 Weave Net 无关 - 您的 pod 运行ning 在主机网络中,就好像它是一个直接在主机上处理 运行。