kubectl explain în Kubernetes (kubectl)

Interogare resurse kubectl 1.0+

Afișează documentația câmpurilor unei resurse direct din schema API a clusterului.

Sintaxă comandă
kubectl explain TIP[.câmp.subcâmp] [--recursive] [--api-version=GRUP/VERSIUNE]

Ce face kubectl explain

Comanda kubectl explain este documentația încorporată a Kubernetes: îți spune ce câmpuri are un obiect, ce tip au, dacă sunt obligatorii și ce înseamnă. Informațiile vin din schema OpenAPI publicată de API server-ul clusterului tău, deci corespund exact versiunii pe care rulezi.

Poți naviga în adâncime folosind puncte, de exemplu kubectl explain deployment.spec.strategy sau kubectl explain pod.spec.containers.livenessProbe. Funcționează și pentru resursele custom (CRD), dacă acestea au o schemă definită.

Este un instrument excelent atunci când scrii manifeste YAML fără acces la documentația online sau când vrei să verifici rapid dacă un câmp există în versiunea ta de cluster.

Opțiuni și argumente

Opțiune / Parametru Descriere
TIP.câmp Calea către câmpul documentat, de exemplu pod.spec.containers.resources.
--recursive Afișează întregul arbore de câmpuri (doar numele și tipurile), fără descrieri.
--api-version=GRUP/VERSIUNE Alege o anumită versiune a resursei, de exemplu autoscaling/v2.
--output=plaintext-openapiv2 Folosește formatul vechi de afișare (bazat pe OpenAPI v2); implicit, de la 1.27, se folosește OpenAPI v3.

Exemple

Exemplul 1: Documentația câmpului replicas dintr-un Deployment

kubectl explain deployment.spec.replicas

Ieșire în terminal

GROUP:      apps
KIND:       Deployment
VERSION:    v1

FIELD: replicas <integer>

DESCRIPTION:
    Number of desired pods. This is a pointer to distinguish between explicit
    zero and not specified. Defaults to 1.

Exemplul 2: Structura completă a unei sonde (probe)

Cu --recursive vedem toate subcâmpurile disponibile pentru livenessProbe. Ieșirea este trunchiată.

kubectl explain pod.spec.containers.livenessProbe --recursive

Ieșire în terminal

KIND:       Pod
VERSION:    v1

FIELD: livenessProbe <Probe>

DESCRIPTION:
    Periodic probe of container liveness. Container will be restarted if the
    probe fails. Cannot be updated.
    ...
FIELDS:
  exec	<ExecAction>
    command	<[]string>
  failureThreshold	<integer>
  grpc	<GRPCAction>
    port	<integer> -required-
    service	<string>
  httpGet	<HTTPGetAction>
    host	<string>
    httpHeaders	<[]HTTPHeader>
      name	<string> -required-
      value	<string> -required-
    path	<string>
    port	<IntOrString> -required-
    scheme	<string>
  initialDelaySeconds	<integer>
  periodSeconds	<integer>
  ...

Greșeli frecvente

  • Folosirea numelui de câmp din YAML cu majusculă greșită: căile sunt sensibile la majuscule (livenessProbe, nu livenessprobe).
  • Presupunerea că un câmp văzut într-un tutorial există și în clusterul tău; explain reflectă versiunea reală a API server-ului.

Comenzi înrudite

  • kubectl api-resources: Listează toate tipurile de resurse disponibile în cluster, cu prescurtări și grupuri API.
  • kubectl apply: Creează sau actualizează declarativ resurse din fișiere YAML/JSON ori directoare Kustomize.
  • Obiectul Pod: Cea mai mică unitate de execuție în Kubernetes: unul sau mai multe containere care împart IP-ul și volumele.