De acuerdo, el título es bastante complicado. Pero en realidad está describiendo la situación.
Implementé un servicio en GKE en el espacio de nombres argo-events. Algo andaba mal con él, así que lo derribé:
kubectl delete namespace argo-eventsEn realidad, ahí es donde comenzaron los problemas (sospecho que hay una conexión con el problema que se describe a continuación) y tuve que recurrir a un truco porque los eventos de argo se quedaron atascados en un estado de Terminación para siempre. Pero el resultado fue el deseado: el espacio de nombres parecía desaparecer junto con todos los objetos que contenía.
Debido a problemas con la reimplementación, inspeccioné el navegador de objetos de GKE (simplemente miré a mi alrededor; ya no puedo filtrar el espacio de nombres de eventos argo porque ya no está oficialmente) donde me topé con dos objetos persistentes en ns argo-events:
argo-events no aparece en la lista de kubectl get namespaces . Solo confirmo eso.
Y puedo encontrar esos dos objetos si los busco específicamente:
$ kubectl get eventbus -n argo-events NAME AGE default 17h $ kubectl get eventsource -n argo-events NAME AGE pubsub-event-source 14hPero, no puedo encontrar nada preguntando por todos los objetos:
$ kubectl get all -n argo-events No resources found in argo-events namespace.Entonces mi pregunta es. ¿Cómo puedo enumerar genéricamente todos los objetos persistentes en argo-events?
Lo pregunto porque, de lo contrario, tendría que inspeccionar todo el árbol del navegador de objetos para encontrar más objetos (ya que ya no puedo seleccionar el espacio de nombres).
Al usar el comando $ kubectl get all , solo imprimirá algunos recursos como:
No imprimirá todos los recursos que se pueden encontrar cuando use $ kubectl api-resources .
Ejemplo
Cuando cree PV a partir de la documentación de PersistentVolume , no aparecerá en $ kubectl get all output, pero aparecerá si especifica este recurso.
$ 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 $ Si desea enumerar todos los recursos de un espacio de namespace específico, debe usar el siguiente comando:
kubectl -n argo-events api-resources --namespaced=true -o name | xargs --verbose -I {} kubectl -n argo-events get {} --show-kind --ignore-not-foundLa solución anterior se presentó en el subproceso de Github kubectl get all no enumera todos los recursos en un espacio de nombres . En este hilo, puede encontrar algunas variaciones adicionales del comando anterior.
Además, también puede consultar el artículo Cómo enumerar todos los recursos en un espacio de nombres de Kubernetes . Puede encontrar el método para enumerar los recursos usando la function .