如何以CSV格式列出集群中所有正在运行的镜像

85次阅读
没有评论

问题描述

想要获取一个包含所有当前在他们的 Kubernetes 集群中运行的容器镜像的 CSV 文件,包括镜像摘要和命名空间信息。他想知道如何实现这个需求。

解决方案

在执行以下操作之前,请确保您的 kubectl 配置正确,具有所需的集群访问凭证。

使用 anchore kai 和 jq 工具

这个解决方案依赖于 anchore kai 和 jq 工具。您可以从 https://github.com/anchore/kai/releases 下载 anchore kai,并将其放置在您的路径中。jq 工具可能已经在您的系统中安装过。
以下是在 Kubernetes 集群中获取正在运行镜像的 CSV 格式的步骤:
1. 下载并安装 anchore kai 工具。
2. 打开终端并运行以下命令:

kai -i | jq --raw-output '.results[] | {"namespace": .namespace, "image": .images[].tag, "digest": .images[].repoDigest} | [.namespace, .image, .digest] | @csv'

在上述命令中,首先使用 kai -i 获取集群中的容器信息,该信息会以 JSON 格式输出。然后使用 jq 工具从 JSON 中提取所需的结果。在处理结果时,重组命名空间、镜像和摘要信息,并将它们转换为 CSV 格式。最后,将 CSV 数据输出到终端。
如果您希望将 CSV 数据保存到文件中,可以使用以下命令:

kai -i | jq --raw-output '.results[] | {"namespace": .namespace, "image": .images[].tag, "digest": .images[].repoDigest} | [.namespace, .image, .digest] | @csv' > inventory.csv

上述命令将 CSV 数据重定向到名为 inventory.csv 的文件中。
通过执行上述命令,您将在终端或文件中获得一个包含正在运行镜像信息的 CSV 文件,其中包括命名空间、镜像名称和摘要信息。

请注意,这种方法可能需要您的集群有足够的权限来获取容器信息。另外,由于工具版本可能会有差异,建议您阅读相关工具的文档以获得更多详细信息。

请注意,使用 anchore kai 和 jq 工具可能需要一些初步配置和学习,以确保您能够正确地获取所需的镜像信息并生成 CSV 文件。在执行这些操作之前,建议您阅读相关工具的文档和示例以获得更多指导。

正文完