按 apiVersion 列出 Kubernetes 资源

List Kubernetes resources by apiVersion

有没有一种简单的方法可以列出与 API 版本相关的所有 kubernetes 对象? 可以说,API 版本 apps/v1beta1 已被弃用,我想知道我的集群中是否有任何对象使用此版本,我如何找到此类对象?

你可以做类似的事情

kubectl get pod -o=custom-columns=NAME:.metadata.name,API-version:.metadata.owner_references[].api_version

通过使用 kubectl 只打印相应的数据和 api version

我问这个问题的原因是我正在将我的 kubernetes 集群从 v1.15 升级到 v1.16,这带来了很多 breaking changes

kubepug tool 让我能够轻松找到我需要更改的资源列表,以便能够从 1.15 无缝升级到 1.16

要列出 Kubernetes 资源版本,请使用此命令:

kubectl api-resources

如果您知道要搜索的资源,则只需使用 grep 从列表中过滤即可:

kubectl api-resources | grep the_resource_name_you_want

在下面的示例中,我们搜索 'persistentvolumes' 资源的 api 版本:

kubectl api-resources | grep persistentvolumes

结果:

deployments     deploy    apps/v1     true         Deployment

获取资源版本还有其他选项:

使用官方文档:

官方和最新版本在Kubernetes API documentation

左侧导航栏列出了资源,点击一个&版本在页面第一行。