首页 > 解决方案 > 使用 kubectl 列出给定命名空间中的所有对象

问题描述

我想列出 Kubernetes 中特定命名空间中存在的所有对象。

kubectl get all -n <namespace>

上面的命令没有列出给定命名空间中的所有可用对象。有没有办法使用 kubectl 列出它们?

我可以通过将它们传递给 kubectl 来列出我想要的所有对象。但我不想要那个。

kubectl -n <namespace> get deployment,rs,sts,ds,job,cronjobs -oyaml

标签: kuberneteskubectl

解决方案


首先,以下这些规则决定资源是否将成为所有类别的一部分。

以下是将新资源添加到 kubectl 获取所有输出的规则。

  • 没有集群范围的资源

  • 没有命名空间管理员级别的资源(限制、配额、策略、
    授权规则)

  • 没有可能无法恢复的资源(机密和 pvc)

  • 被认为与#3“相似”的资源应该被归为
    相同的组(configmaps)

回答你的问题这取自rcorre's Answer

kubectl api-resources --verbs=list --namespaced -o name \
  | xargs -n 1 kubectl get --show-kind --ignore-not-found -l <label>=<value> -n <namespace>

最后,如果要在所有类别中添加自定义资源,则需要在 CRD 规范中提供这些字段。自定义资源定义:类别

# categories is a list of grouped resources the custom resource belongs to.
    categories:
    - all


推荐阅读