我知道在 kubernetes 中,我们不能使用低于 30000 的服务节点端口,因为这些端口被 kubernetes 使用。例如,我可以使用"kubectl port-forward svc/someservice 80:80"吗...不会与低于 30000 的 Kubernetes 端口发生冲突?
简而言之 - 是的,你可以。
在你的问题中,很明显你错过了对NodePort
类型的服务的理解以及kubectl port-forward
本质上的作用。
kubectl port-forward
不会通过Service
资源的.spec.type: NodePort
节中定义的端口发送流量。事实上,使用kubectl port-forward
您可以定位ClusterIP
类型的服务(根据定义,该服务没有.spec.type: NodePort
节(。
你能描述一下进行这种设置的原因是什么吗?
kubectl port-forward svc/someservice 80:80
只是将您的local_machine:80转发到某个服务的端点的端口:80。
换句话说,与本地端口 80 建立的连接将转发到运行应用程序的容器的端口 80。建立此连接后,您可以使用本地工作站调试容器中运行的应用程序。
由于已知的限制,目前端口转发仅适用于 TCP 协议。问题 47862 中正在跟踪对 UDP 协议的支持。
截至目前(2020 年 2 月(,该问题仍未解决。
节点端口用于完全不同的东西。它用于通过将流量发送到集群中任何节点上的特定端口来访问 Pod 的情况。
这就是为什么你的问题的答案是"你绝对可以这样做";然而,正如我之前所说,不清楚你为什么要这样做。如果没有该信息,就很难就"实现所需功能的最佳方法是什么"提供指导
希望有帮助。