kubectl api-resources în Kubernetes (kubectl)

Configurare și context kubectl 1.11+

Listează toate tipurile de resurse disponibile în cluster, cu prescurtări și grupuri API.

Sintaxă comandă
kubectl api-resources [--namespaced=true|false] [--api-group=GRUP] [-o wide|name]

Ce face kubectl api-resources

Comanda kubectl api-resources afișează toate tipurile de obiecte pe care le cunoaște API server-ul: resursele standard (Pod, Service, Deployment) și cele adăugate prin CustomResourceDefinition (de exemplu certificates de la cert-manager).

Pentru fiecare tip vezi numele la plural folosit în comenzi, prescurtările (po, svc, deploy), versiunea grupului API (de pus în câmpul apiVersion al manifestelor), dacă resursa aparține unui namespace și valoarea câmpului kind.

Este foarte utilă când scrii un manifest și nu știi ce apiVersion să folosești, sau când vrei să afli dacă un anumit operator a fost instalat corect în cluster.

Opțiuni și argumente

Opțiune / Parametru Descriere
--namespaced=true|false Afișează doar resursele care aparțin unui namespace (true) sau doar pe cele globale, la nivel de cluster (false).
--api-group=GRUP Filtrează după grupul API, de exemplu apps sau networking.k8s.io. Grupul „core” se specifică cu șir vid: --api-group=''.
-o wide Adaugă coloana VERBS (operațiile permise: get, list, create, delete etc.).
-o name Afișează doar numele resurselor, util în scripturi.
--verbs=list,get Afișează doar resursele care suportă verbele indicate.
--sort-by=name|kind Sortează lista după nume sau după kind.

Exemple

Exemplul 1: Resursele din grupul apps

Vedem prescurtările și versiunea API pentru Deployment, StatefulSet și celelalte resurse din grupul apps.

kubectl api-resources --api-group=apps

Ieșire în terminal

NAME                  SHORTNAMES   APIVERSION   NAMESPACED   KIND
controllerrevisions                apps/v1      true         ControllerRevision
daemonsets            ds           apps/v1      true         DaemonSet
deployments           deploy       apps/v1      true         Deployment
replicasets           rs           apps/v1      true         ReplicaSet
statefulsets          sts          apps/v1      true         StatefulSet

Exemplul 2: Resursele globale (care nu aparțin unui namespace)

Lista este trunchiată; în practică vei vedea mai multe rânduri.

kubectl api-resources --namespaced=false | head -8

Ieșire în terminal

NAME                              SHORTNAMES   APIVERSION                        NAMESPACED   KIND
componentstatuses                 cs           v1                                false        ComponentStatus
namespaces                        ns           v1                                false        Namespace
nodes                             no           v1                                false        Node
persistentvolumes                 pv           v1                                false        PersistentVolume
mutatingwebhookconfigurations                  admissionregistration.k8s.io/v1   false        MutatingWebhookConfiguration
validatingwebhookconfigurations                admissionregistration.k8s.io/v1   false        ValidatingWebhookConfiguration
customresourcedefinitions         crd,crds     apiextensions.k8s.io/v1           false        CustomResourceDefinition

Exemplul 3: Verificarea instalării unui CRD

Dacă grupul cert-manager.io nu apare, operatorul nu este instalat.

kubectl api-resources --api-group=cert-manager.io -o name

Ieșire în terminal

certificaterequests.cert-manager.io
certificates.cert-manager.io
clusterissuers.cert-manager.io
issuers.cert-manager.io

Greșeli frecvente

  • Folosirea unei versiuni API eliminate (de exemplu extensions/v1beta1 pentru Ingress sau Deployment). Verifică întotdeauna coloana APIVERSION pentru clusterul tău.
  • Confuzia dintre api-resources și api-versions: a doua comandă listează doar grupurile/versiunile, fără resursele din ele.

Comenzi înrudite

  • kubectl explain: Afișează documentația câmpurilor unei resurse direct din schema API a clusterului.
  • kubectl get: Listează una sau mai multe resurse, într-un tabel sau în format YAML/JSON.
  • kubectl cluster-info: Afișează adresa API server-ului și a serviciilor principale din cluster.