操作Kubernetes资源

2025-06-19 21:35:00
丁国栋
原创 9
摘要:本文记录和汇总操作Kubernetes资源的操作。

在 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

--

发表评论
博客分类