在Kubernetes中,为什么NodePort默认端口范围是30000到32767?

10

我是 Kubernetes 的新手。在 Kubernetes 中,为什么 NodePort 默认端口范围是 30000 - 32767?即使我们将默认值更改为用户定义的端口范围,为什么只允许 2767 个端口?

请帮助我理解。 提前致谢。


2
你可以从这里找到一些信息。 - Sayf Uddin Al Azad Sagor
1个回答

11

为避免与主机网络上的其他内容冲突,此范围被选择(也可以手动选项),因为在许多情况下它是动态分配的。例如,如果您将其设置为1-32767范围,则您分配的节点端口可能会与22号端口发生冲突。

@thockin在这里详细阐述了原因:

  1. 我们不希望服务节点端口占用节点使用的真实端口。
  2. 我们不希望服务节点端口占用 Pod 主机端口。
  3. 我们不希望随意分配某些端口,如80、443或22。

从代码中看,该范围并未受到限制。您可以在这里这里以及godocs中找到代码片段。

我还进行了快速测试,当我设置更高的默认范围时,它对我很有效:

➜  temp kubectl get svc
NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
my-service    NodePort    10.100.214.233   <none>        80:14051/TCP   68s
my-service2   NodePort    10.97.67.57      <none>        80:10345/TCP   6s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接