Los comandos de Kubernetes que cualquier power user debe dominar.


Gestión de Clúster

kubectl cluster-info  # Muestra información sobre el clúster
kubectl get nodes  # Lista los nodos en el clúster
kubectl describe node [nombre-nodo]  # Muestra detalles de un nodo
kubectl drain [nombre-nodo]  # Vacía un nodo de pods antes de mantenimiento
kubectl cordon [nombre-nodo]  # Marca un nodo como no programable
kubectl uncordon [nombre-nodo]  # Marca un nodo como programable
kubectl top nodes  # Muestra estadísticas de recursos de los nodos

Gestión de Pods

kubectl get pods  # Lista todos los pods en el espacio de nombres actual
kubectl get pods --all-namespaces  # Lista todos los pods en todos los espacios de nombres
kubectl describe pod [nombre-pod]  # Muestra detalles de un pod
kubectl logs [nombre-pod]  # Muestra los logs de un pod
kubectl exec -it [nombre-pod] -- /bin/sh  # Ejecuta un comando dentro de un pod
kubectl delete pod [nombre-pod]  # Elimina un pod
kubectl run [nombre-pod] --image=[imagen]  # Crea un pod con una imagen específica
kubectl port-forward [nombre-pod] [puerto-local]:[puerto-pod]  # Reenvío de puertos del pod a tu máquina
kubectl top pod [nombre-pod]  # Muestra el uso de recursos de un pod

Gestión de Deployments

kubectl get deployments  # Lista todos los deployments
kubectl describe deployment [nombre-deployment]  # Muestra detalles de un deployment
kubectl apply -f [archivo-deployment.yaml]  # Aplica cambios desde un archivo YAML de deployment
kubectl delete deployment [nombre-deployment]  # Elimina un deployment
kubectl rollout status deployment [nombre-deployment]  # Verifica el estado de un deployment
kubectl rollout undo deployment [nombre-deployment]  # Revierte la última actualización de un deployment
kubectl scale deployment [nombre-deployment] --replicas=[número]  # Escala un deployment
kubectl set image deployment/[nombre-deployment] [contenedor]=[nueva-imagen]  # Actualiza la imagen de un contenedor en un deployment

Gestión de Servicios

kubectl get services  # Lista todos los servicios
kubectl describe service [nombre-servicio]  # Muestra detalles de un servicio
kubectl expose deployment [nombre-deployment] --type=[tipo] --port=[puerto]  # Expone un deployment como un servicio
kubectl delete service [nombre-servicio]  # Elimina un servicio
kubectl port-forward service/[nombre-servicio] [puerto-local]:[puerto-servicio]  # Reenvío de puertos del servicio

Gestión de Espacios de Nombres (Namespaces)

kubectl get namespaces  # Lista todos los namespaces
kubectl create namespace [nombre-namespace]  # Crea un nuevo namespace
kubectl delete namespace [nombre-namespace]  # Elimina un namespace
kubectl config set-context --current --namespace=[nombre-namespace]  # Establece el namespace actual

Gestión de ConfigMaps y Secrets

kubectl get configmaps  # Lista todos los ConfigMaps
kubectl describe configmap [nombre-configmap]  # Muestra detalles de un ConfigMap
kubectl create configmap [nombre-configmap] --from-file=[archivo]  # Crea un ConfigMap desde un archivo
kubectl delete configmap [nombre-configmap]  # Elimina un ConfigMap
kubectl get secrets  # Lista todos los secrets
kubectl describe secret [nombre-secret]  # Muestra detalles de un secret
kubectl create secret generic [nombre-secret] --from-literal=[clave]=[valor]  # Crea un secret desde valores literales
kubectl delete secret [nombre-secret]  # Elimina un secret

Gestión de Volúmenes y Almacenamiento

kubectl get pv  # Lista todos los volúmenes persistentes (PVs)
kubectl describe pv [nombre-pv]  # Muestra detalles de un PV
kubectl get pvc  # Lista todos los reclamos de volúmenes persistentes (PVCs)
kubectl describe pvc [nombre-pvc]  # Muestra detalles de un PVC
kubectl delete pvc [nombre-pvc]  # Elimina un PVC

Gestión de Roles y Accesos (RBAC)

kubectl get roles  # Lista todos los roles
kubectl get rolebindings  # Lista todas las vinculaciones de roles
kubectl describe role [nombre-role]  # Muestra detalles de un rol
kubectl create role [nombre-role] --verb=[acción] --resource=[recurso]  # Crea un rol
kubectl delete role [nombre-role]  # Elimina un rol
kubectl get clusterroles  # Lista todos los roles a nivel de clúster
kubectl describe clusterrole [nombre-clusterrole]  # Muestra detalles de un rol de clúster
kubectl create clusterrole [nombre-clusterrole] --verb=[acción] --resource=[recurso]  # Crea un rol de clúster
kubectl delete clusterrole [nombre-clusterrole]  # Elimina un rol de clúster

Gestión de Jobs y CronJobs

kubectl get jobs  # Lista todos los jobs
kubectl describe job [nombre-job]  # Muestra detalles de un job
kubectl create job [nombre-job] --image=[imagen]  # Crea un job
kubectl delete job [nombre-job]  # Elimina un job
kubectl get cronjobs  # Lista todos los cronjobs
kubectl describe cronjob [nombre-cronjob]  # Muestra detalles de un cronjob
kubectl create cronjob [nombre-cronjob] --schedule="*/5 * * * *" --image=[imagen]  # Crea un cronjob con una programación
kubectl delete cronjob [nombre-cronjob]  # Elimina un cronjob

Comprobación y Depuración

kubectl get events  # Lista todos los eventos en el clúster
kubectl describe [recurso] [nombre-recurso]  # Muestra detalles de cualquier recurso
kubectl get all  # Lista todos los recursos en el espacio de nombres actual
kubectl explain [recurso]  # Muestra la documentación de un recurso
kubectl diff -f [archivo.yaml]  # Compara un archivo YAML con el estado actual
kubectl api-resources  # Lista todos los recursos disponibles en el API de Kubernetes
kubectl api-versions  # Lista todas las versiones del API de Kubernetes
kubectl version  # Muestra la versión de kubectl y el servidor

Otros Comandos Útiles

kubectl edit [recurso] [nombre-recurso]  # Edita un recurso en vivo
kubectl patch [recurso] [nombre-recurso] --patch '{...}'  # Aplica un parche a un recurso
kubectl label [recurso] [nombre-recurso] [etiqueta]=[valor]  # Añade una etiqueta a un recurso
kubectl annotate [recurso] [nombre-recurso] [anotación]=[valor]  # Añade una anotación a un recurso
kubectl rollout restart deployment [nombre-deployment]  # Reinicia un deployment
kubectl taint nodes [nombre-nodo] [clave]=[valor]:[efecto]  # Añade una taint a un nodo
kubectl wait --for=condition=[condición] pod/[nombre-pod]  # Espera a que un recurso alcance una condición

Comentarios