【问题标题】:Easily detect deprecated resources on Kubernetes轻松检测 Kubernetes 上已弃用的资源
【发布时间】:2021-11-20 18:59:37
【问题描述】:

我们刚刚收到一封来自 GCP 的电子邮件,通知我们我们的集群目前正在使用已弃用的 Beta API,我们需要升级到最新的 API 版本。

我们有 3 个集群在多个命名空间中运行多个资源,因此必须通过所有集群来检测哪些已过时会有点痛苦。

我们控制的,例如服务、部署、horizo​​ntalpodautoscaler、poddisruptionbudgets 等,已经更新了。

但是我们有很多服务的manifest文件是自动生成的,比如Halyard生成的Spinnaker服务,或者Elastic Operator生成的ElasticSearch等。

有什么方法可以按 API 版本过滤所有资源,或者有什么方法可以检测所有命名空间中已弃用的资源吗?

【问题讨论】:

    标签: kubernetes google-kubernetes-engine kube-apiserver


    【解决方案1】:

    为了查看您的集群支持哪些 API

    # Print out supported API's in the cluster
    kubectl api-versions
    

    要查看已弃用的 API,您可以使用此工具。
    这正是您所要求的,它将使用已弃用的 API 打印资源列表。

    https://github.com/doitintl/kube-no-trouble

    # sample output from the official docs:
    
    
    $./kubent
    6:25PM INF >>> Kube No Trouble `kubent` <<<
    6:25PM INF Initializing collectors and retrieving data
    6:25PM INF Retrieved 103 resources from collector name=Cluster
    6:25PM INF Retrieved 132 resources from collector name="Helm v2"
    6:25PM INF Retrieved 0 resources from collector name="Helm v3"
    6:25PM INF Loaded ruleset name=deprecated-1-16.rego
    6:25PM INF Loaded ruleset name=deprecated-1-20.rego
    _____________________________________________________________________
    >>> 1.16 Deprecated APIs <<<
    ---------------------------------------------------------------------
    KIND         NAMESPACE     NAME                    API_VERSION
    Deployment   default       nginx-deployment-old    apps/v1beta1
    Deployment   kube-system   event-exporter-v0.2.5   apps/v1beta1
    Deployment   kube-system   k8s-snapshots           extensions/v1beta1
    Deployment   kube-system   kube-dns                extensions/v1beta1
    _____________________________________________________________________
    >>> 1.20 Deprecated APIs <<<
    ---------------------------------------------------------------------
    KIND      NAMESPACE   NAME           API_VERSION
    Ingress   default     test-ingress   extensions/v1beta1
    

    安装kubent

    # install `kubent`
    sh -c "$(curl -sSL 'https://git.io/install-kubent')"
    

    正在运行kubent

    kubent
    


    其他类似工具:

    【讨论】:

    • 哇,我从没想过有这么完美的解决方案存在!非常感谢。
    • 不客气 :-) 很高兴为您提供帮助
    猜你喜欢
    • 2016-09-05
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    相关资源
    最近更新 更多