kubernetes kubectl端口转发和NodePort服务之间的区别

jtoj6r0c  于 2022-11-28  发布在  Kubernetes
关注(0)|答案(3)|浏览(309)

kubectl端口转发(将端口从本地主机转发到集群中的pod以获得对集群资源的访问权限)和NodePort服务类型之间有什么区别?

l5tcr1uw

l5tcr1uw1#

您正在比较两个完全不同的东西。您应该compare ClusterIP、NodePort、LoadBalancer和入口。
第一个也是最重要的区别是NodePort expose是持久的,而通过使用端口转发来执行它,您必须始终运行kubectl port-forward ...并使其保持活动状态。
kubectl port-forward用于测试、实验室、故障排除,不适用于长期解决方案。它将在您的机器和kubernetes之间创建一个隧道,因此该解决方案将满足来自/去往您的机器的需求。
NodePort可以为您提供长期的解决方案,它可以满足来自/去往您的节点所在网络内任何地方的需求。

pw9qyyiw

pw9qyyiw2#

如果您使用端口转发kubectl port forward svc/{your_service} -n {service_namespace},您只需要一个clusterIP,kubectl将为您处理流量。Kubectl将为您的流量代理
如果您使用nodeport来访问您的服务,则意味着您需要在工作节点上打开端口。

qlckcl4x

qlckcl4x3#

当你使用port forwarding时,这将导致我们的集群本质上就像它有一个node port service在里面运行,而没有创建一个服务。这是严格的开发设置。通过一个命令,你将拥有一个节点端口服务。

// 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配置文件来设置一个服务。2它将永久地公开这个端口并执行负载平衡。

相关问题