【发布时间】:2021-02-22 16:06:45
【问题描述】:
kubernetes 文档includes 一个按 pod 列出容器镜像的示例命令:
按 Pod 列出容器映像
可以通过使用范围操作对元素进行单独迭代来进一步控制格式。
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\ sort
当我在我的 Debian WSL2 实例中运行此命令时,它会正确列出我在所有命名空间中运行的每个 pod 的容器。
当我在 Windows 命令行中运行相同的命令时,出现错误:error: a resource cannot be retrieved by name across all namespaces:
C:\workspace>kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' | sort
error: a resource cannot be retrieved by name across all namespaces
这是 kubectl 的一个错误,还是这个命令只有 *nix?是否有一个独立于操作系统的命令用于通过 pod 跨所有命名空间获取容器映像?
(我在 WSL2 上运行 Debian,Windows 10 Enterprise。Docker Desktop 使用 WSL2 集成,K8S 和 minikube。)
【问题讨论】:
-
kubectl get pods --all-namespaces有效吗? -
是的。我认为这是
jsonpath所特有的;如果我使用-n <namespace>指定命名空间,则会出现错误:error parsing jsonpath '{range, unclosed action。
标签: kubernetes kubectl