【问题标题】:Silence warnings in output from kubectlkubectl 输出中的静默警告
【发布时间】:2021-02-15 09:01:13
【问题描述】:

有没有办法消除来自 kubectl 的警告消息,例如下面显示的弃用通知?

Warning: rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
Warning: rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 RoleBinding
Warning: apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
Warning: admissionregistration.k8s.io/v1beta1 ValidatingWebhookConfiguration is deprecated in v1.16+, unavailable in v1.22+; use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration
Warning: admissionregistration.k8s.io/v1beta1 MutatingWebhookConfiguration is deprecated in v1.16+, unavailable in v1.22+; use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration

这些警告似乎出现在 Kubernetes 1.19 中。

【问题讨论】:

    标签: kubernetes kubectl


    【解决方案1】:

    如果有人想了解有关此主题的更多详细信息,请访问 Kubernetes 的 blog post,其中详细介绍了此主题。

    答案是 kubectl 本身并没有提供一种方法来消除这些警告。一般来说,kubectl 会针对 1.19 及更高版本显示这些弃用警告。

    client-go 为 Kubernetes CLI 的开发人员提供了一种访问 handle these warnings in particular ways 的方法,但 kubectl 选择始终显示这些警告。

    一般来说,除非这些警告会导致现有进程出现问题,否则最好显示这些警告。如果有一些问题(例如,日志中充满了这些警告),那么像@acid_fuji 提到的那样提供一些自定义脚本可能会很有用。

    【讨论】:

      【解决方案2】:

      要添加上一个答案,您可能还希望将 stderr 输出重定向到 null device。但它并不理想,因为它会处理所有的标准错误,而不仅仅是警告。

      kubectl get pod 2> /dev/null
      

      null device 是丢弃所有写入数据的设备文件。 null 设备通常用于处理进程中不需要的输出流,或作为输入流的方便空文件。

      这里最好将stderr重定向到stdout,然后用grep过滤。

      kubectl get pod 2>&1 | grep -i -v "Warn" | grep -i -v "Deprecat" 
      

      【讨论】:

        猜你喜欢
        • 2022-12-18
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 2016-07-21
        • 1970-01-01
        相关资源
        最近更新 更多