kubectl端口转发和NodePort服务类型有什么区别?前者将本地主机的端口转发到集群中的Pod以获取集群资源访问,而后者则暴露出一个固定端口供外部流量访问。
您正在比较两个完全不同的事物。 您应该比较 ClusterIP、NodePort、LoadBalancer 和 Ingress。
第一个、也是最重要的区别是,NodePort公开是持久的,而使用端口转发时,您始终需要运行kubectl port-forward ...
并保持其活动状态。
kubectl port-forward旨在用于测试、实验室、故障排除,而不是长期解决方案。它会创建您的机器和Kubernetes之间的隧道,因此这种解决方案将为您的机器提供服务需求。
NodePort可以为您提供长期解决方案,并且可以为网络中任何地方的节点提供服务需求。
kubectl port forward svc/{your_service} -n {service_namespace}
,您只需要一个ClusterIP,kubectl将为您处理流量。 Kubectl将成为流量的代理。 // find the name of the pod that running nats streaming server
kubectl get pods
kubectl port-forward nats-Pod-5443532542c8-5mbw9 4222:4222
kubectl
将设置代理,将您本地计算机上的任何流量转发到特定Pod上的端口。
但是,要创建节点端口,您需要编写一个YAML配置文件来设置服务。 它将永久公开该端口并执行负载平衡。