我是 Kubernetes 的新手。在 Kubernetes 中,为什么 NodePort 默认端口范围是 30000 - 32767?即使我们将默认值更改为用户定义的端口范围,为什么只允许 2767 个端口?
请帮助我理解。 提前致谢。
我是 Kubernetes 的新手。在 Kubernetes 中,为什么 NodePort 默认端口范围是 30000 - 32767?即使我们将默认值更改为用户定义的端口范围,为什么只允许 2767 个端口?
请帮助我理解。 提前致谢。
为避免与主机网络上的其他内容冲突,此范围被选择(也可以手动选项),因为在许多情况下它是动态分配的。例如,如果您将其设置为1-32767范围,则您分配的节点端口可能会与22号端口发生冲突。
@thockin在这里详细阐述了原因:
- 我们不希望服务节点端口占用节点使用的真实端口。
- 我们不希望服务节点端口占用 Pod 主机端口。
- 我们不希望随意分配某些端口,如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