如何真正列出一个不存在的命名空间的所有 objects?

How to list really all objects of a nonexistant namespace?

好吧,标题有点啰嗦。但它实际上是描述情况。

我在命名空间 argo-events 中的 GKE 上部署了一项服务。有问题所以我把它拆了:

kubectl delete namespace argo-events

实际上,这已经是问题开始的地方(我怀疑与下面描述的问题有关),我不得不求助于 hack,因为 argo-events 永远陷入了终止状态。但结果如愿 - 名称空间似乎与其中的所有 objects 一起消失了。

由于重新部署的问题,我检查了 GKE Object 浏览器(只是环顾四周 - 无法再过滤 argo-events 命名空间,因为它正式消失了),在那里我偶然发现了两个挥之不去的 objects 在 ns argo-events:

argo-events 未被 kubectl get namespaces 列出。只是确认一下。

我可以找到那两个 objects 如果我专门查找它们:

$ kubectl get eventbus -n argo-events
NAME      AGE
default   17h

$ kubectl get eventsource -n argo-events
NAME                  AGE
pubsub-event-source   14h

但是 - 我找不到任何东西 objects:

$ kubectl get all -n argo-events
No resources found in argo-events namespace.

所以我的问题是。我如何一般地列出 argo-events 中所有挥之不去的 objects?

我问是因为否则我必须检查整个 Object 浏览器树才能找到更多 objects(因为我不能再 select 命名空间了)。

通过使用命令 $ kubectl get all,您只会打印一些资源,例如:

  • 豆荚
  • 服务
  • 守护进程
  • 部署
  • 复制集
  • 状态集
  • 工作
  • 定时作业

它不会打印你使用$ kubectl api-resources时可以找到的所有资源。

例子

当从 PersistentVolume 文档创建 PV 时,它不会在 $ kubectl get all 输出中列出,但如果您指定此资源,它将被列出。

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/storage/pv-volume.yaml
persistentvolume/task-pv-volume created
$ kubectl get pv
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
task-pv-volume   10Gi       RWO            Retain           Available           manual                  3m12s
$ kubectl get all
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.3.240.1   <none>        443/TCP   86m
$ 

如果您想列出来自特定 namespace 的所有资源,您应该使用以下命令:

kubectl -n argo-events api-resources --namespaced=true -o name | xargs --verbose -I {} kubectl -n argo-events get {} --show-kind --ignore-not-found

以上解决方案已在 Github 线程 kubectl get all does not list all resources in a namespace 中提出。在此线程中,您可能会发现上述命令的一些其他变体。

此外,您还可以查看How to List all Resources in a Kubernetes Namespace篇文章。您可以找到使用 function.

列出资源的方法