操作Kubernetes资源
- 2025-06-19 21:35:00
- 丁国栋
- 原创 9
在 Kubernetes 中,NodePort 类型的 Service 会分配一个固定的端口号,允许通过集群中任意节点的 IP 地址和该端口访问服务。Kubernetes 为 NodePort 分配的端口号默认范围是:30000-32767(共 2768 个可用端口)。
Linux默认开放的动态端口范围在/proc/sys/net/ipv4/ip_local_port_range,一般是20000-65535。可以通过修改apiserver的参数指定--service-node-port-range=30000-32767
获取集群内已经使用了的NodePort
kubectl get svc -A|grep NodePort |awk '{split($6, ports, ","); for (i in ports) print ports[i]}'|awk -F'[:/]' '{print $2}'| sort注:用kubectl自带的jsonpath或者jq等处理也可以,但比上面的方法略微复杂,适用于其他复杂的场景使用。
kubectl get svc --all-namespaces -o=jsonpath='{range .items[?(@.spec.type=="NodePort")]}{.spec.ports[].nodePort}{"\n"}{end}' | sort -n
--
发表评论