按apiVersion列出Kubernetes资源



有没有一种简单的方法可以列出与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资源版本,请使用以下命令:

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文档中

左侧导航栏列出了资源,单击其中一个&版本是页面的第一行。

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

kubepug工具让我可以很容易地找到一个需要更改的资源列表,以便能够从1.15到1.16 无缝升级

编辑:另一种选择是pluto命令行工具,用于获取可能已弃用或已删除API版本的资源的信息。如果你广泛使用helm,这是特别有用的,因为冥王星可以观察helm状态。

最新更新