我是 Kubernetes 新手。在 Kubernetes 中,为什么 NodePort 的默认端口范围是30000 - 32767?即使我们将默认值更改为用户定义的端口范围,为什么只允许2767个端口?
请帮我理解。提前致谢。
我是 Kubernetes 新手。在 Kubernetes 中,为什么 NodePort 的默认端口范围是30000 - 32767?即使我们将默认值更改为用户定义的端口范围,为什么只允许2767个端口?
请帮我理解。提前致谢。
选择此范围是为了避免与主机网络上的任何其他内容发生冲突,因为在许多情况下它是动态分配的(也可以手动选择)。例如,如果您从 1-32767 范围内设置它,您分配的nodePort
可能与端口 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