【发布时间】:2020-08-23 01:56:59
【问题描述】:
是否有一种简单的方法可以列出与 API 版本相关的所有 kubernetes 对象?
可以说,API 版本 apps/v1beta1 正在被弃用,我想知道我的集群中是否有任何使用此版本的对象,如何找到这些对象?
【问题讨论】:
是否有一种简单的方法可以列出与 API 版本相关的所有 kubernetes 对象?
可以说,API 版本 apps/v1beta1 正在被弃用,我想知道我的集群中是否有任何使用此版本的对象,如何找到这些对象?
【问题讨论】:
你可以做类似的事情
kubectl get pod -o=custom-columns=NAME:.metadata.name,API-version:.metadata.owner_references[].api_version
使用 kubectl 只打印相应的数据和api version
【讨论】:
apiVersion 字段中可能有多个版本的部署,例如 apps/v1beta1 或 apps/v1beta2 所以查询也应该捕获其他对象类型,而不仅仅是 pod。
我问这个问题的原因是我正在将我的 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
左侧导航栏列出资源,点击一个&版本为页面第一行。
【讨论】: