当 Kubernetes 集群资源请求量饱和以后,新的 Pod 将调度失败。此时实际资源使用量有可能很低, 这种情况下就需要分析所有 Pod 资源分配。
Nginx 静态站点、webhook 工具、监控 exporter、数据库 web 管理(adminer kibana)等,这些对资源要求都不高,可以适当调低 request 资源量。
kubectl get pods -A -o go-template \
--template='
{{- range .items}}{{ $ns := .metadata.namespace }}{{ $podname := .metadata.name }}
{{- range .spec.containers}}
{{- if .resources.requests }}
{{- printf "%s\tnamespace: %s\tpod: %s\tcontainer: %s\n" .resources.requests $ns $podname .name }}
{{- end}}{{end}}{{end}}'
## cpu request 大于等于 1
kubectl get pods -A -o go-template --template='
{{- range .items}}{{ $ns := .metadata.namespace }}{{ $podname := .metadata.name }}
{{- range .spec.containers}}
{{- if .resources.requests }}
{{- printf "%s\tnamespace: %s\tpod: %s\tcontainer: %s\n" .resources.requests $ns $podname .name }}
{{- end}}{{end}}{{end}}' | grep -E 'cpu:[0-9]+ '
## cpu request 大于等于 500m
kubectl get pods -A -o go-template --template='
{{- range .items}}{{ $ns := .metadata.namespace }}{{ $podname := .metadata.name }}
{{- range .spec.containers}}
{{- if .resources.requests }}
{{- printf "%s\tnamespace: %s\tpod: %s\tcontainer: %s\n" .resources.requests $ns $podname .name }}
{{- end}}{{end}}{{end}}' | grep -E 'cpu:([0-9]+|[5-9][0-9]{2}m) '
## cpu request 大于等于 100m
kubectl get pods -A -o go-template --template='
{{- range .items}}{{ $ns := .metadata.namespace }}{{ $podname := .metadata.name }}
{{- range .spec.containers}}
{{- if .resources.requests }}
{{- printf "%s\tnamespace: %s\tpod: %s\tcontainer: %s\n" .resources.requests $ns $podname .name }}
{{- end}}{{end}}{{end}}' | grep -E 'cpu:([0-9]+|[1-9][0-9]{2}m) '
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。