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, nulivenessprobe). - Presupunerea că un câmp văzut într-un tutorial există și în clusterul tău;
explainreflectă 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.