如果我想在kubernetes中使用NodePort,如何知道节点中有哪个端口可用
我想在使用NodePort时指定端口,但如何知道所有节点上都有哪个端口可用,我不希望端口冲突 您可以使用 kubectl get svc-所有名称空间 然后您可以使用类型grep 在那里,您可以看到所有分配的端口。它是基本的管道和输出过滤如果我想在kubernetes中使用NodePort,如何知道节点中有哪个端口可用,kubernetes,Kubernetes,我想在使用NodePort时指定端口,但如何知道所有节点上都有哪个端口可用,我不希望端口冲突 您可以使用 kubectl get svc-所有名称空间 然后您可以使用类型grep 在那里,您可以看到所有分配的端口。它是基本的管道和输出过滤 kubectl获取svc-all namespace | grep ClusterIP |而read-r(端口);;做回显$port;完成您可以获得所有服务、grep节点端口并查看结果 $ kubectl get services --all-namespac
kubectl获取svc-all namespace | grep ClusterIP |而read-r(端口);;做回显$port;完成您可以获得所有服务、grep节点端口并查看结果
$ kubectl get services --all-namespaces -o yaml |grep "nodePort:"|sort
nodePort: 30215
nodePort: 30274
nodePort: 30312
nodePort: 30342
nodePort: 30344
nodePort: 30386
nodePort: 30517
nodePort: 30738
nodePort: 30863
nodePort: 31063
nodePort: 31162
nodePort: 31445
或者,如果您想要更详细的服务名称列表等,可以使用json输出管道连接到jq
编辑:节点端口的端口范围通常为30000-32767,应保留供Kubernetes使用以避免冲突。您可以使用netstat | grep
如果将类型字段设置为NodePort,Kubernetes控制平面将从-service node port range flag default:30000-32767指定的范围分配端口。每个节点都会将每个节点上相同的端口号代理到您的服务中。正确的方法是让Kubernetes从默认分配的范围30000–32767中自动选择节点端口。不要将nodePort包含在yaml中。问题是我希望获得此端口并通知其他外部进程,然后其他进程可以与此pod通信。或者,当我的pod启动时,有没有人知道分配了哪个端口?@zjffdu没有sure@zjffdu可能您可以为这些外部流程提供额外的服务,并针对完成所需工作的POD