【问题标题】:Is there any way to log "kubectl describe" of all objects loaded by "helm install"?有没有办法记录“helm install”加载的所有对象的“kubectl describe”?
【发布时间】:2020-08-04 07:35:40
【问题描述】:

我正在使用 helm 来部署我的应用程序,其中包含部署、pod 和作业等。 有什么方法可以获取“helm install”加载的所有对象的“kubectl describe”输出?

【问题讨论】:

  • 是的,通过 helm 安装的对象有一个通用标签,您可以使用它来描述具有该标签的所有对象。 kubectl describe po -l chart=chart-name
  • "kubectl get all -l chart=myb5 -n myb5" 没有给你相关的资源?
  • Helm 部署的应用程序也有这个标签 app.kubernetes.io/managed-by: helm 。由于此图表是在本地制作的,因此您也可以自己添加标签。
  • Helm 3 提供 "get" 子命令,特别可能对 helm get manifest <release-name> 有帮助
  • 弗朗索瓦的建议很好,对你有用吗? @François,您可以发布作为答案并详细说明,您怎么看?

标签: kubernetes kubernetes-helm


【解决方案1】:

告诉我它是否有效,但我尝试使用我的 helm 图表(自定义图表,ES 和 kibana)。

TL;DR

kubectl get all -l chart=myb5 -n myb5

-n 代表命名空间 -l 代表标签

说明

标记您的 kubernetes 对象非常重要,并且大多数 helm 图表都使用标签来轻松访问和选择对象。

当您安装图表时,它会添加一个标签,例如chart=my-chart-name。如果图表没有使用它(也许您正在为自己创建一个),添加它是一个好习惯。

因此,使用get all 查询所有资源应该会检索到在 default 命名空间中创建的所有资源。

根据您安装 helm chart 的位置,最好在查询中添加命名空间字段。

注意,如果您只为 1 个 helm 图表资源使用 1 个命名空间,则无需使用标签进行过滤。

PS: 应该和 describe 一样工作;)

最好的,

【讨论】:

    【解决方案2】:

    由于您使用的是helm install,我假设您的 Chart 资源已安装到特定的命名空间中。

    在这种情况下,您可以简单地使用命令kubectl describe all -n <your-namespace>。 它的输出应该与在 Helm Chart 的每个资源上使用 kubectl describe 相同。

    【讨论】:

      【解决方案3】:

      kubectl describe all -l chart=<chartName> -n namespace

      kubectl get events -n namespace -w

      【讨论】:

        猜你喜欢
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 2013-09-20
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-10
        相关资源
        最近更新 更多