Salta el contingut

Comandes Essencials de kubectl

Comandes essencials de kubectl que utilitzareu dia a dia

Quan treballeu amb Kubernetes, passareu molt de temps utilitzant kubectl. És la vostra eina per interactuar amb el clúster, i conèixer bé les comandes més comunes us farà molt més eficients. Anem a repassar les comandes que utilitzareu constantment.

Consultant l'estat dels recursos

La comanda més bàsica i que probablement executareu més vegades és kubectl get. Aquesta comanda us mostra una llista de recursos del tipus que especifiqueu. Per exemple, per veure tots els pods del vostre clúster, simplement executeu kubectl get pods. Això us dona una vista de tots els pods, amb el seu nom, si estan en estat Running o no, quantes vegades s'han reiniciat, i quant de temps fa que estan funcionant.

De vegades voldreu més informació sobre els pods. En aquests casos, podeu afegir l'opció -o wide que us mostra detalls addicionals com la IP del pod i en quin node s'està executant. També podeu filtrar els resultats per etiquetes, cosa que és molt útil quan teniu molts recursos. Per exemple, kubectl get pods -l app=nginx només us mostrarà els pods que tinguin l'etiqueta "app=nginx".

També podeu consultar altres tipus de recursos canviant "pods" per "deployments", "services", "ingress", o qualsevol altre tipus de recurs. Fins i tot podeu usar "all" per veure pods, services i deployments alhora.

Obtenint informació detallada

Quan veieu que alguna cosa no funciona correctament, la comanda kubectl describe és la vostra millor amiga. Aquesta comanda us dona una descripció completa d'un recurs específic, incloent tots els seus detalls de configuració, el seu estat actual, i molt important, els esdeveniments recents relacionats amb aquest recurs.

Per exemple, si teniu un pod que no s'inicia correctament, podeu executar kubectl describe pod [nom-del-pod] i obtindreu molta informació valuosa. Veureu per què el pod no pot iniciar-se, si hi ha problemes descarregant la imatge, si no hi ha prou recursos al node, si hi ha errors en la configuració, etc. Els esdeveniments al final de la sortida solen ser especialment útils perquè mostren què ha estat passant amb el recurs en ordre cronològic.

Consultant els logs

Els logs són fonamentals per entendre què està passant dins dels vostres contenidors. La comanda kubectl logs [nom-del-pod] us mostra tots els logs que el contenidor ha escrit a la sortida estàndard. Si el pod té múltiples contenidors, haureu d'especificar quin contenidor voleu amb l'opció -c [nom-del-contenidor].

Una opció molt útil és -f (follow), que funciona com la comanda tail -f de Linux: mostra els logs en temps real a mesura que es generen. Això és perfecte quan esteu depurant un problema i voleu veure exactament què està fent l'aplicació en cada moment. Executeu kubectl logs -f [nom-del-pod] i veureu els logs actualitzant-se en directe.

Executant comandes dins dels pods

De vegades necessiteu entrar dins d'un pod per inspeccionar-lo, executar comandes, o simplement explorar què hi ha. La comanda kubectl exec us ho permet. Per exemple, kubectl exec -it [nom-del-pod] -- /bin/bash us dona una shell interactiva dins del contenidor. L'opció -i fa la sessió interactiva, i -t assigna un terminal.

Un cop dins, podeu executar qualsevol comanda que estigui disponible al contenidor. Això és molt útil per depurar problemes, comprovar configuracions, o fins i tot provar coses manualment abans d'automatitzar-les.

Copiant fitxers

Amb kubectl cp podeu copiar fitxers des del vostre ordinador local cap a un pod o viceversa. Per copiar un fitxer local al pod, executeu kubectl cp fitxer-local [nom-del-pod]:/path/dins/pod. Per copiar del pod al vostre ordinador, invertiu l'ordre: kubectl cp [nom-del-pod]:/path/dins/pod fitxer-local. Això és molt útil per extreure logs, bases de dades de desenvolupament, o pujar fitxers de configuració.

Accedint directament a un pod

Si voleu accedir a un servei que està executant-se dins d'un pod sense haver de configurar un Service o un Ingress, podeu usar port forwarding. La comanda kubectl port-forward pod/[nom-del-pod] 8080:80 redirigeix el port 8080 del vostre ordinador local al port 80 del pod. Després podeu obrir http://localhost:8080 al vostre navegador i accedir directament al servei que corre dins del pod. Això és especialment útil per a debugging.

Eliminant recursos

Quan voleu eliminar recursos, teniu diverses opcions. Podeu eliminar un recurs específic amb kubectl delete pod [nom-del-pod], o podeu eliminar tots els recursos definits en un fitxer YAML amb kubectl delete -f fitxer.yaml. També podeu eliminar per etiqueta, per exemple kubectl delete pods -l app=test eliminaria tots els pods amb l'etiqueta "app=test".

Informació del clúster

Per veure informació general sobre el vostre clúster, podeu usar kubectl cluster-info, que us mostra les URLs dels serveis principals del clúster. Per veure els nodes que formen part del clúster, executeu kubectl get nodes, que us mostrarà tots els nodes amb el seu estat, versió de Kubernetes, i altres detalls bàsics.