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

Bha*_*gan 10 kubernetes kubernetes-service service-node-port-range

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

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

aci*_*uji 12

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

\n

这里已经很好地阐述了原因@thockin

\n
\n
    \n
  1. 我们不希望服务节点端口取代节点使用的真实端口
  2. \n
  3. 我们不希望服务节点端口取代 Pod 主机端口。
  4. \n
  5. 我们不想随机分配某人端口 80 或 443 或 22。
  6. \n
\n
\n

查看代码我发现范围不受它限制。您可以在此处此处以及此处的godocs 中找到代码片段

\n

当我设置较高的默认范围时,我还进行了快速测试,它对我来说效果很好:

\n
\xe2\x9e\x9c  temp kubectl get svc\nNAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE\nmy-service    NodePort    10.100.214.233   <none>        80:14051/TCP   68s\nmy-service2   NodePort    10.97.67.57      <none>        80:10345/TCP   6s\n
Run Code Online (Sandbox Code Playgroud)\n