列出集群中所有运行容器的镜像
你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。 如果你还没有集群,你可以通过 构建一个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
要获知版本信息,请输入 .
列出所有命名空间下的所有容器
- 使用
kubectl get pods --all-namespaces
获取所有命名空间下的所有 Pod - 使用
-o jsonpath={.items[*].spec.containers[*].image}
来格式化输出,以仅包含容器镜像名称。 这将以递归方式从返回的 json 中解析出image
字段。- 参阅 获取更多关于如何使用 jsonpath 的信息。
- 使用标准化工具来格式化输出:
tr
,sort
,- 使用
tr
以用换行符替换空格 - 使用
uniq
来聚合镜像计数
- 使用
jsonpath 解释如下:
.items[*]
: 对于每个返回的值.spec
: 获取 spec- : 对于每个容器
.image
: 获取镜像
说明: 按名字获取单个 Pod 时,例如 kubectl get pod nginx
,路径的 .items[*]
部分应该省略, 因为返回的是一个 Pod 而不是一个项目列表。
列出以标签过滤后的 Pod 的所有容器
要获取匹配特定标签的 Pod,请使用 -l 参数。以下匹配仅与标签 app=nginx
相符的 Pod。
要获取匹配特定命名空间的 Pod,请使用 namespace 参数。以下仅匹配 命名空间下的 Pod。
使用 go-template 代替 jsonpath 来获取容器
- Jsonpath 参考指南
- 参考指南