如果我想在kubernetes中使用NodePort,如何知道节点中有哪个端口可用

如果我想在kubernetes中使用NodePort,如何知道节点中有哪个端口可用,kubernetes,Kubernetes,我想在使用NodePort时指定端口,但如何知道所有节点上都有哪个端口可用,我不希望端口冲突 您可以使用 kubectl get svc-所有名称空间 然后您可以使用类型grep 在那里,您可以看到所有分配的端口。它是基本的管道和输出过滤 kubectl获取svc-all namespace | grep ClusterIP |而read-r(端口);;做回显$port;完成您可以获得所有服务、grep节点端口并查看结果 $ kubectl get services --all-namespac

我想在使用NodePort时指定端口,但如何知道所有节点上都有哪个端口可用,我不希望端口冲突

您可以使用

kubectl get svc-所有名称空间

然后您可以使用类型grep

在那里,您可以看到所有分配的端口。它是基本的管道和输出过滤


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