打印所有 pod 以及 CPU 要求 kubernetes

R. *_*lan 5 kubernetes

我想在列中打印具有 CPU 要求的所有 pod 的列表

我很确定它是这样的 kubectl get pods 'spec.containers[].resources.limits.cpu'

有人可以给我正确的语法吗?

小智 7

您还可以使用以下命令获取 cpu 限制。比使用jsonpath更清晰。

kubectl get po -o custom-columns="Name:metadata.name,CPU-limit:spec.containers[*].resources.limits.cpu"
Run Code Online (Sandbox Code Playgroud)


cha*_*ffe 6

您可以使用以下命令获取 pod(在默认命名空间中)及其 CPU 限制。

kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[].resources.limits.cpu}{"\n"}{end}'
Run Code Online (Sandbox Code Playgroud)

我们使用带有-o=jsonpath标志的 JSONPath 输出,并为其提供我们想要提取的数据。

您可以在https://kubernetes.io/docs/reference/kubectl/jsonpath/找到有关使用 JSONPath 输出的更多详细信息


P E*_*ram 5

你可以试试下面的命令。用内存替换 cpu 以获取内存请求和限制

CPU Requests
--------------
kubectl get po --all-namespaces \
 -o=jsonpath="{range .items[*]}{.metadata.namespace}:{.metadata.name}{'\n'}{range .spec.containers[*]}  {.name}:{.resources.requests.cpu}{'\n'}{end}{'\n'}{end}"

CPU Limits
-----------
kubectl get po --all-namespaces \
 -o=jsonpath="{range .items[*]}{.metadata.namespace}:{.metadata.name}{'\n'}{range .spec.containers[*]}  {.name}:{.resources.limits.cpu}{'\n'}{end}{'\n'}{end}"
Run Code Online (Sandbox Code Playgroud)